Сначала перечислите каталоги с 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) совсем.