Простой вопрос, я уверен. Я видел ответ , который показывает, как это сделать, включая подкаталоги, но я хочу знать, сколько файлов (не папок) находится только в текущем каталоге. Благодаря.
ls -F |grep -v / | wc -l
ls -F
перечислить все файлы и добавить индикатор (один из * / => @ |) в записи grep -v /
сохранить все строки, которые не содержат косую черту wc -l
счетные линии Попробуйте этот oneliner:
find -maxdepth 1 -type f | wc -l
Попробуйте
ls -al | grep ^[-] | wc -l
ls -al
- список всех файлов с длинным форматом списка grep ^[-]
- поиск строки, начинающейся с «-», является символом для обозначения обычного файла, когда список файлов с ls -al wc -l
- количество строк Я просто хочу добавить ответ Тома , потому что мне нравится играть с Bash . Вот так:
echo "Directory $(pwd) has $(ls -F |grep -v / | wc -l) files"
Ниже приведен пример моего каталога /data
:
Directory /data has 580569 file(s).
И ниже приведены мои объяснения:
echo double-quoted-message
напечатает желаемое сообщение. $(any-desirable-valid-command)
внутри сообщения echo
в двойных кавычках напечатает результат выполнения связанной команды. pwd
распечатает текущий каталог. ls -F
предназначен для перечисления всех файлов и добавления индикатора (один из * / => @ |) в записи. Я скопировал это из ответа Тома . grep -v /
- это команда для поиска в простом тексте, параметр -v /
сохранит все строки, которые не содержат косую черту (и). wc -l
напечатает подсчет строк. Я знаю, что этому вопросу 3 года, я просто не могу сдержать желание добавить еще один ответ.
Если у вас установлено tree
в вашей системе, вы можете использовать эту команду:
tree -L 1 /path/to/your/directory | tail -n 1
Показывает количество файлов и каталогов в этом каталоге.
-L n
показывает глубину поиска.
Вы можете установить tree
с помощью sudo apt-get install tree
.
Для подсчета общего количества файлов с определенным расширением вы можете набрать:
ls|grep jpg |wc -l