Подсчитать количество файлов в каталоге в Linux? [закрыто]

333

Для подсчета количества файлов в каталоге я обычно использую

ls directory | wc -l

Но есть ли другая команда, которая не использует wc?

Kantura
источник
16
В чем именно заключается проблема, wcкоторая мешает вам использовать его?
Ванза
5
На самом деле, нет. Команды Unix, как правило, предназначены для использования таким образом, объединены в каналы.
Майкл Берковски
2
Я подключаюсь через SSH к другому хосту для доступа к некоторым данным. К сожалению, куча базовых команд не работают на этом хосте. Если я использую wc, он возвращает «нераспознанную команду». Поэтому я ищу другие варианты.
Kantura
7
Используйте treeкоманду. Это даст вам дерево и внизу скажет, сколько файлов и каталогов там. Если вы хотите скрытые файлы, также используйте tree -a.
Элайджа Линн
5
@vanza " Что именно такое проблема с wc ", что если у файла есть имя \nв имени файла? Да, крайне маловероятно! Но все же технически обоснованно и возможно.
JamesThomasMoon1979

Ответы:

524

это один:

ls -l . | egrep -c '^-'

Примечание:

ls -1 | wc -l

Что означает: lsсписок файлов в каталоге

-1: (это ОДИН) только одна запись в строке. Измените его на -1a, если вы хотите скрытые файлы тоже

|: вывод трубы на ...

wc: "wordcount"

-l: считать lинес.

Саджад Карутхедат
источник
1
Нет, подождите . Я сделал болван. Вы абсолютно правы, Sajad Lfc. ls -1 dir | egrep -c '' Возвращает количество файлов в каталоге. Спасибо .
Kantura
1
@SajadKaruthedath ls -l . | egrep -c '^-'не считает скрытые файлы. Я предлагаю добавить -aфлаг ls.
JamesThomasMoon1979
1
@ JamesThomasMoon1979: пожалуйста, проверьте мое описание
Саджад Карутхедат
1
Это показывает ошибку, когда в папке нет файлов. Использование ls -1 /dir 2>/dev/null | wc -l. Здесь вывод ls направлен в / dev / null, и в результате получается чистый ноль
Sathish
6
@runios, потому что ls -lвозвращает дополнительную строку вверху, суммируя размеры файлов на общую сумму. Вы должны использовать, ls -1а не ls -l. Кроме того, если кто-то хочет скрытые файлы, но без каталогов, .и ..вы должны использоватьls -1A | wc -l
Даниэль Биглер