Сначала перечислите каталоги с MinGW ls

Недавно я начал использовать MinGW вместо Cygwin на моей машине с Windows 7, и у меня возникла небольшая проблема с MinGW ls, В Cygwin, ls имеет --group-directories-first опция, которая, очевидно, заставляет каталоги быть перечисленными перед другими типами файлов. Тем не менее, MinGW, кажется, не имеет этой опции, и я не могу найти замену ей. Один существует?

1 ответ

Это происходит под заголовком "заменитель этого". Следующий скрипт будет приблизительно эмулировать поведение ls –l с той разницей, что он группирует подкаталоги в начале каждого списка каталогов.

#! / bin / sh -
sort_ls_output ()
{
    sed -n -e '1s / ^ / 1 # / p' -e '1n' \
        -e 's / ^ / # /' -e 's / ^ # d / 2 # d /' -e 's / ^ # / 3 # /' -ep \
        | кот -n | сортировать -n -k2 -k1 | sed 's/[^#]*#//'
}

если [ $# = 0 ]
затем
    ls -l | sort_ls_output
еще
    для аргумента
    делать
        эхо
        if [ -d "$arg" ]
        затем
            echo "${arg}:"
            ls -l "$arg" | sort_ls_output
        еще
            ls -l "$ arg"
        фи
    сделанный
фи

Это грубый срез. Он не обрабатывает отдельные обычные файлы (не каталоги) в командной строке так же, как ls –l делает, и он не обрабатывает параметры (например, –a) совсем.

Другие вопросы по тегам