Список файлов определенного расширения

Хорошо, это странно. Я использую этот код,

ls *.prj

Чтобы вывести все файлы с расширением .prj в директорию, но я получаю эту ошибку,

bash: / bin / ls : Список аргументов слишком длинный

В конечном итоге я хочу получить количество файлов, которые я использовал,

ls * .prj | wc -l

Но даже эта команда выдает ту же ошибку. Есть идеи, где я иду не так?

5
задан 16 November 2012 в 00:21

3 ответа

Вместо этого используйте команду find

 find . -name "*.prj"

Вы также можете комбинировать команды с find

find . -name "*.prj" -exec COMMAND {} \;

Надеюсь, это поможет.

0
ответ дан 16 November 2012 в 00:21

Анализ выходных данных ls ненадежен . Это, вероятно, будет работать в вашем случае, но ls искажает непечатные символы. Вот полностью надежный способ подсчета файлов, соответствующих определенному расширению. Этот фрагмент оболочки создает массив, содержащий имена файлов, а затем печатает количество элементов в массиве.

a=(*.prj)
echo ${#a[@]}
0
ответ дан 16 November 2012 в 00:21

Ничего, есть ограничение на количество аргументов, с которыми может работать bash. Do

ls | grep '\.prj | wc -l
0
ответ дан 16 November 2012 в 00:21

Другие вопросы по тегам:

Похожие вопросы: