Подсчитать количество файлов в папке на Unix/Linux

Подсчитать количество файлов в папке на Unix/Linux

Возникла примитивное задание: необходимо посчитать количество файлов или папок в определенной директории. Существует разные вариации, и сейчас в своей статье «Подсчитать количество файлов в папке на Unix/Linux» я приведу несколько из них.

Подсчитать количество файлов в папке на Unix/Linux с помощью команды find.

Чтобы посчитать количество всех файлов в определенной директории (например /home/captain) можно использовать команду find и она посчитает количество файлов рекурсивно для всех вложенных папок:

# find /home/captain -type f| wc -l

Чтобы посчитать количество всех папок в определенной директории (например /home/captain) можно использовать команду find и она посчитает количество папок рекурсивно для всех вложенных директорий:

# find /home/captain -type d| wc -l

Хочу отметить следующее, что утилита find работает хорошо, но очень нагружает сервер, лучше использовать команду ls.

Подсчитать количество файлов в папке на Unix/Linux с помощью команды ls.

Чтобы посчитать количество всех файлов в определенной директории (например /home/captain) можно так же использовать команду fls и она посчитает количество файлов:

$ ls /home/captain| wc –l

Чтобы посчитать количество всех файлов в определенной директории (например /home/captain) можно так же использовать команду fls и она посчитает количество файлов рекурсивно для всех вложенных папок:

$ ls -l /home/captain| grep ^- | wc -l

Чтобы посчитать количество всех папок в определенной директории (например /home/captain) можно так же использовать команду ls и она посчитает количество папок рекурсивно для всех вложенных директорий:

$ ls -l /home/captain| grep ^d | wc -l

Чтобы посчитать количество всех файлов в определенной директории (например /home/captain) можно так же использовать команду fls и она посчитает количество файлов определенного типа (txt) рекурсивно для всех вложенных папок:

$ ls –l /home/captain| grep txt| wc -l

Вот и все, я завершаю свою тему «Подсчитать количество файлов в папке на Unix/Linux».

5 thoughts on “Подсчитать количество файлов в папке на Unix/Linux

  1. Никогда так не делайте (и производные из неё):
    $ ls -l /home/captain | wc -l
    Это хорошо работает только на малых количествах файлов, как только их количество перевалит тысяч за сто-двести вы устанете ждать.
    Ускорить можно убрав -l из команды ls:
    $ ls /home/captain | wc -l
    Дело в том, что ключ -l заставляет читать метаинформацию по каждому файлу — дата изменения, права и прочее. Если этого не делать, подсчёт пойдёт гораздо бодрее

    • Да, не забудьте указать ключ -a, иначе скрытые файлы (название начинается с точки) не будут подсчитаны.
      Ну а самый быстрый способ, используя ls:
      $ ls -f /home/captain | wc -l
      Почему — читайте мануалы

      • Спасибо за дополнение! Я стараюсь писать заметки сначало то что знаю и проверено, а потом — дополняю новым. У меня не было столько файлов (пару тысяч) в папке. Ну и да, если прогнать командой «find» сначала — то поиск быстрей будет 😉

  2. ls -laR /home/captain | grep «^-» | wc -l
    Посчитает все файлы в папке + во вложенных папках

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.