Найти количество файлов в папке и вложенных папках?

У вас, кажется, есть несколько проблем:

Кажется, что gnome-settings-daemon, возможно, не работает, и он устанавливает, какие темы использовать. Кажется, что вам, возможно, не хватает пакетов gnome-icon-theme и / или light-themes.

Трудно сказать, верно ли второе утверждение, но это, безусловно, первый. Если вы щелкнете правой кнопкой мыши по фону и хотите изменить фон, измените ли значки, верхнюю панель и шрифты, хотя бы на мгновение? По какой-то причине вы можете увидеть сбой gnome-settings-daemon, и вы должны сообщить об этом об ошибке. Это невозможно решить просто через askubuntu.

114
задан 8 April 2011 в 16:55

81 ответ

Чтобы подсчитать файлы (даже файлы без расширения) в корневой папке текущего каталога, используйте:

  ls -l |  grep ^ - |  wc -l  

Чтобы подсчитать файлы (даже файлы без расширения) рекурсивно из корня текущего каталога, используйте:

  ls -lR |  grep ^ - |  wc -l  
9
ответ дан 7 August 2018 в 21:46

Я бы выбрал этот вариант:

ls -alR | grep -c ^ -

0
ответ дан 7 August 2018 в 21:46

Вы можете использовать find. | wc -l

find. перечислит все файлы и папки и содержимое, начиная с текущей папки. wc -l подсчитывает результаты поиска

0
ответ дан 7 August 2018 в 21:46

Используйте команду tree . Возможно, вам потребуется установить пакет tree .

Он отобразит все файлы и папки в данной папке и в конце отобразит резюме.

21
ответ дан 7 August 2018 в 21:46

find выглядит быстрее, чем дерево, поэтому я использовал ниже, чтобы подсчитывать файлы в каждом каталоге текущего рабочего каталога (игнорируя файлы в CWD), позволяя каталогам иметь пробелы:

ls - d * / | в то время как читать dir_line do echo -n "$ dir_line:" найти "$ dir_line" -type f | wc -l done

1
ответ дан 7 August 2018 в 21:46

Чтобы подсчитать файлы (даже файлы без расширения) в корневой папке текущего каталога, используйте:

  ls -l |  grep ^ - |  wc -l  

Чтобы подсчитать файлы (даже файлы без расширения) рекурсивно из корня текущего каталога, используйте:

  ls -lR |  grep ^ - |  wc -l  
9
ответ дан 10 August 2018 в 10:00

Используйте эту команду для каждой папки в пути

  для D в *;  do echo $ D;  найти $ D-тип f |  wc-1;  сделано  
2
ответ дан 10 August 2018 в 10:00

Самый быстрый и простой способ - использовать дерево . Его скорость ограничена вашим выходным терминалом, поэтому, если вы передадите результат на tail -1 , вы получите немедленный результат. Вы также можете управлять тем, на каком уровне каталога вам нравятся результаты, используя опцию -L . Для цветного вывода используйте -C . Например:

  $ tree share / some / directory / |  tail -1 558 каталогов, 853 файлов $ tree -L 2 share / some / directory / |  tail -1 120 каталогов, 3 файла  

Если его еще нет, вы можете получить здесь .

9
ответ дан 10 August 2018 в 10:00
  find -type f -printf.  |  wc -c  

Не рассчитывайте выходные строки find, потому что имена файлов, содержащие 99 строк новой строки, будут считаться 100 файлами.

4
ответ дан 10 August 2018 в 10:00

Используйте команду tree . Возможно, вам потребуется установить пакет tree .

Он отобразит все файлы и папки в данной папке и в конце отобразит резюме.

21
ответ дан 10 August 2018 в 10:00

find выглядит быстрее, чем дерево, поэтому я использовал ниже, чтобы подсчитывать файлы в каждом каталоге текущего рабочего каталога (игнорируя файлы в CWD), позволяя каталогам иметь пробелы:

ls - d * / | в то время как читать dir_line do echo -n "$ dir_line:" найти "$ dir_line" -type f | wc -l done

1
ответ дан 10 August 2018 в 10:00

Я бы выбрал этот вариант:

ls -alR | grep -c ^ -

0
ответ дан 10 August 2018 в 10:00

Вы можете использовать find. | wc -l

find. перечислит все файлы и папки и содержимое, начиная с текущей папки. wc -l подсчитывает результаты поиска

0
ответ дан 10 August 2018 в 10:00
  find -type f -printf.  |  wc -c  

Не рассчитывайте выходные строки find, потому что имена файлов, содержащие 99 строк новой строки, будут считаться 100 файлами.

4
ответ дан 13 August 2018 в 16:19
  • 1
    Имена файлов, содержащие новые строки, являются невероятно редким случаем. – DisgruntledGoat 22 July 2013 в 18:49
  • 2
    @DisgruntledGoat: Таким образом, ошибку будет очень сложно найти. – user unknown 23 July 2013 в 07:41

Чтобы подсчитать файлы (даже файлы без расширения) в корневой папке текущего каталога, используйте:

  ls -l |  grep ^ - |  wc -l  

Чтобы подсчитать файлы (даже файлы без расширения) рекурсивно из корня текущего каталога, используйте:

  ls -lR |  grep ^ - |  wc -l  
9
ответ дан 13 August 2018 в 16:19

Используйте эту команду для каждой папки в пути

  для D в *;  do echo $ D;  найти $ D-тип f |  wc-1;  сделано  
2
ответ дан 13 August 2018 в 16:19

Самый быстрый и простой способ - использовать дерево . Его скорость ограничена вашим выходным терминалом, поэтому, если вы передадите результат на tail -1 , вы получите немедленный результат. Вы также можете управлять тем, на каком уровне каталога вам нравятся результаты, используя опцию -L . Для цветного вывода используйте -C . Например:

  $ tree share / some / directory / |  tail -1 558 каталогов, 853 файлов $ tree -L 2 share / some / directory / |  tail -1 120 каталогов, 3 файла  

Если его еще нет, вы можете получить здесь .

9
ответ дан 13 August 2018 в 16:19

Я бы выбрал этот вариант:

ls -alR | grep -c ^ -

0
ответ дан 13 August 2018 в 16:19
  • 1
    Пожалуйста, добавьте некоторые подробности ... – Pierre.Vriens 29 May 2016 в 10:18

Вы можете использовать find. | wc -l

find. перечислит все файлы и папки и содержимое, начиная с текущей папки. wc -l подсчитывает результаты поиска

0
ответ дан 13 August 2018 в 16:19
  • 1
    Это решение также учитывает папки, я дал оценку, потому что это соответствовало моему случаю, что я не хотел их подсчитывать :) – topless 8 April 2011 в 17:12
  • 2
    Решение не будет работать с файлами, имена которых содержат новую строку. – user unknown 8 April 2011 в 19:23

Используйте команду tree . Возможно, вам потребуется установить пакет tree .

Он отобразит все файлы и папки в данной папке и в конце отобразит резюме.

21
ответ дан 13 August 2018 в 16:19

find выглядит быстрее, чем дерево, поэтому я использовал ниже, чтобы подсчитывать файлы в каждом каталоге текущего рабочего каталога (игнорируя файлы в CWD), позволяя каталогам иметь пробелы:

ls - d * / | в то время как читать dir_line do echo -n "$ dir_line:" найти "$ dir_line" -type f | wc -l done

1
ответ дан 13 August 2018 в 16:19

Другие вопросы по тегам:

Похожие вопросы: