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


333

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

ls directory | wc -l

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


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
Даниэль Биглер
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.