Хорошо, это странно. Я использую этот код,
ls *.prj
Чтобы вывести все файлы с расширением .prj в директорию, но я получаю эту ошибку,
bash: / bin / ls : Список аргументов слишком длинный
blockquote>В конечном итоге я хочу получить количество файлов, которые я использовал,
ls * .prj | wc -l
blockquote>Но даже эта команда выдает ту же ошибку. Есть идеи, где я иду не так?
Вместо этого используйте команду find
find . -name "*.prj"
Вы также можете комбинировать команды с find
find . -name "*.prj" -exec COMMAND {} \;
Надеюсь, это поможет.
Анализ выходных данных ls
ненадежен . Это, вероятно, будет работать в вашем случае, но ls
искажает непечатные символы. Вот полностью надежный способ подсчета файлов, соответствующих определенному расширению. Этот фрагмент оболочки создает массив, содержащий имена файлов, а затем печатает количество элементов в массиве.
a=(*.prj)
echo ${#a[@]}
Ничего, есть ограничение на количество аргументов, с которыми может работать bash. Do
ls | grep '\.prj | wc -l