Порахувати кількість файлів у каталозі в Linux? [зачинено]


332

Для підрахунку кількості файлів у каталозі я зазвичай використовую

ls directory | wc -l

Але чи є інша команда, яка не використовується wc?


16
Яка саме проблема в wcтому, що заважає вам використовувати його?
vanza

5
Не зовсім. Команди Unix, як правило, призначені для використання таким чином, прикуті до труб.
Майкл Берковський

2
Я підключаюсь через ssh до іншого хоста, щоб отримати доступ до деяких даних. На жаль, низка основних команд, схоже, не працює на цьому хості. Якщо я використовую wc, він повертає "нерозпізнану команду". Тому я шукаю інші варіанти.
Kantura

7
Використовуйте treeкоманду. Це дасть вам дерево, а внизу підкаже, скільки файлів і каталогів існує. Якщо ви хочете приховані файли, також використовуйте tree -a.
Ілля Лінн

5
@vanza "У чому саме проблема з wc ", що якщо у файлі є \nім'я файлу? Так, вкрай малоймовірно! Але все-таки технічно справедливий і можливий.
JamesThomasMoon1979

Відповіді:


523

це одне:

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

Примітка:

ls -1 | wc -l

Що означає:: lsсписок файлів у dir

-1: (це ОДИН) лише один запис у рядку. Змініть його на -1a, якщо ви хочете і прихованих файлів

|: вихід труби на ...

wc: "підрахунок слів"

-l: рахувати lінів.


1
Не чекайте. Я зробив бубу. Ви абсолютно праві Sajad Lfc. ls -1 dir | egrep -c '' Це повертає кількість файлів у dir. Дякую .
Kantura

1
@SajadKaruthedath ls -l . | egrep -c '^-'не рахує приховані файли. Я пропоную додати -aпрапор до ls.
JamesThomasMoon1979

1
@ JamesThomasMoon1979: будь ласка, ознайомтеся з моїм описом
Sajad Karuthedath

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.