Вот GNU-utils как собственные win32 порты. Они не нуждаются в cygwin, который будет выполняться и идтись оболочка (sh.exe), включая grep, sed, awk, находят, меньше, кошку, tac, и многое другое.
Проблема с путем Windows сохранится, но возможно Вы переименовываете находку к gfind
(найдите гну) или к search
, сделать это более легкодоступным, и добавить coreutils dir к Вашему ПУТИ.
"Не используйте ls в сценариях", проблема с POSIX ls "только"; для GNU видят ls --quoting-style=
.
Вид GNU решает проблему с --zero-terminated
.
Если это должно быть совместимо затем, Вы могли бы использовать find ... -exec
для передачи одного имени файла за один раз к сценарию, который делает выход. Если, по крайней мере, удар доступен:
start cmd:> testfunc () { echo "${1//$'\n'/\n}"; }
start cmd:> testfunc a$'\n'b
a\nb
Самый легкий путь безусловно состоит в том, чтобы использовать zsh. Спецификатор шарика om
виды соответствуют в обратном хронологическом порядке; использовать Om
для хронологического порядка.
for x in /path/to/dir/*(Nom); do …
N
спецификатор шарика заставляет шаблон расширяться до пустого списка, если каталог пуст. Сделайте это *(DNom)
соответствовать точечным файлам.
--zero-terminated
- спасибо за это, мне жаль, что я не мог дать Вам еще больше точек! – evilsoup 27.05.2013, 19:38info ls
: если я хотел пуленепробиваемый сценарий с ls, который--quoting-style
я должен использовать? – evilsoup 27.05.2013, 19:48--quoting-style=escape
путь состоит в том, чтобы выбрать. – Hauke Laging 27.05.2013, 19:57ls
--quoting-style
сбой (для парсинга purposea), потому что это заключает имена файлов в кавычки только: когда у Вас есть пространство в названии группы. Хорошо, это очень strage случай, но это, appen в cygwin колотят оболочку, здесь у Вас есть названия группы какDomain Users
. – DavAlPi 20.06.2013, 12:23