Список слишком длинный для команды `ls`, CSH - PullRequest
2 голосов
/ 19 июня 2011

Я хочу получить список всех моих файлов типа ofl в нескольких каталогах. Я использовал следующую команду:

ls RESULTS/*/quakesim/iecrud/quake/fgb/stflt/*.ofl

но я получил сообщение: /bin/ls: Argument list too long. Таких файлов чуть больше 1600. Есть ли способ получить список файлов?

EDIT:

Мне нужны пути к файлам, а не просто сколько их было wc было попыткой увидеть, сколько файлов у меня есть, не «загрязняя» мой экран более чем 1600 путями.

Ответы [ 3 ]

5 голосов
/ 19 июня 2011

Используйте find вместо ls.

Пример: (при условии, что ваш текущий рабочий каталог является родителем РЕЗУЛЬТАТОВ)

find . -name "RESULTS/*/quakesim/iecrud/quake/fgb/stflt/*.ofl" -print

Второй вариант:

find . -print | egrep '.ofl$'

0 голосов
/ 03 июня 2018

Это может быть грязно, но это работает для моих нужд и в пределах моей компетенции. Я не думаю, что это работает очень быстро, но это позволило мне продолжить мой день.

ls | grep jpg | <something>

Я получаю список из 90 000 jpgs и отправляю их в avconv, чтобы создать интервал времени.

Ранее я использовал ls * .jpg | avconv, прежде чем я столкнулся с этой проблемой.

0 голосов
/ 19 июня 2011

Вы можете создать быстрый bash-скрипт, который будет перебирать разные буквы от a до z для одной из двух звездочек, а затем для каждого результата вы добавляете результат из wc к текущему итогу для каждого изменения и возвращаете результат.

Вы также можете увидеть, будет ли это работать, просто используя:

[a-m]*
[o-z]*

только для двух разных команд.Может быть проще, хотя я не знаю ограничения количества аргументов.

...