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