3

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

1 ответ1

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#/' -e p \
        | cat -n | sort -n -k2 -k1 | sed 's/[^#]*#//'
}

if [ $# = 0 ]
then
    ls -l | sort_ls_output
else
    for arg
    do
        echo
        if [ -d "$arg" ]
        then
            echo "${arg}:"
            ls -l "$arg" | sort_ls_output
        else
            ls -l "$arg"
        fi
    done
fi

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .