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

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

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

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

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

81 ответ

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

for D in *; do echo $D; find $D -type f| wc -l; done
2
ответ дан 26 July 2018 в 20:00

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

$ tree share/some/directory/ | tail -1 558 directories, 853 files $ tree -L 2 share/some/directory/ | tail -1 120 directories, 3 files

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

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

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

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

Я бы сам пошел с этим вариантом:

ls -alR | grep -c ^ -
0
ответ дан 2 August 2018 в 03:43
  • 1
    Пожалуйста, добавьте некоторые подробности ... – Pierre.Vriens 29 May 2016 в 10:18

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

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

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

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

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

21
ответ дан 2 August 2018 в 03:43

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

ls -d */ | while read dir_line do echo -n "$dir_line :" find "$dir_line" -type f | wc -l done

1
ответ дан 2 August 2018 в 03:43

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

ls -l | grep ^- | wc -l

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

ls -lR | grep ^- | wc -l
9
ответ дан 2 August 2018 в 03:43

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

for D in *; do echo $D; find $D -type f| wc -l; done
2
ответ дан 2 August 2018 в 03:43

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

$ tree share/some/directory/ | tail -1 558 directories, 853 files $ tree -L 2 share/some/directory/ | tail -1 120 directories, 3 files

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

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

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

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

Я бы сам пошел с этим вариантом:

ls -alR | grep -c ^ -
0
ответ дан 4 August 2018 в 19:47
  • 1
    Пожалуйста, добавьте некоторые подробности ... – Pierre.Vriens 29 May 2016 в 10:18

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

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

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

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

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

21
ответ дан 4 August 2018 в 19:47

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

ls -d */ | while read dir_line do echo -n "$dir_line :" find "$dir_line" -type f | wc -l done

1
ответ дан 4 August 2018 в 19:47

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

ls -l | grep ^- | wc -l

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

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

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

for D in *; do echo $D; find $D -type f| wc -l; done
2
ответ дан 4 August 2018 в 19:47

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

$ tree share/some/directory/ | tail -1 558 directories, 853 files $ tree -L 2 share/some/directory/ | tail -1 120 directories, 3 files

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

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

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

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

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

4
ответ дан 6 August 2018 в 03:50

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

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

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

9
ответ дан 6 August 2018 в 03:50

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

  ls -l |  grep ^ - |  wc -l  

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

  ls -lR |  grep ^ - |  wc -l  
9
ответ дан 6 August 2018 в 03:50

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

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

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

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

21
ответ дан 6 August 2018 в 03:50

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

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

1
ответ дан 6 August 2018 в 03:50

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

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

0
ответ дан 6 August 2018 в 03:50

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

ls -alR | grep -c ^ -

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

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

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

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

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

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

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

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

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

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

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