-3

du / перечисляет каждый отдельный файл?
||
Есть ли способ лучше?

1 ответ1

2

du / перечисляет каждый отдельный файл?

От man du:

Суммируйте использование диска каждого FILE , рекурсивно для каталогов.

Я интерпретирую это как: да, du / выводит список всех файлов в / . Там могут быть некоторые подводные камни, которые я не знаю, хотя.

Это будет список файлов, если они приведены в качестве аргументов. Поскольку / является каталогом, du / перечисляет каталоги; файлы учитываются при расчете размеров их соответствующих каталогов; в этом случае они не перечислены.


find - это стандартный инструмент для вывода списка файлов. Чтобы перечислить каждый вызов файла:

sudo find / -type f

где -type f указывает инструменту выводить список только обычных файлов. Таким образом, вы получите результат без размеров (по сравнению с выводом du ); это хорошо, если вы хотите только перечислить файлы.


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

  • если результаты включают обычные файлы, каталоги, именованные каналы,… (опция -type );
  • ctime, atime, mtime ;
  • владельцем;
  • по разрешениям;
  • по размеру.

Я думаю, вам нужно иметь список файлов, чтобы что-то сделать с ним. Вы можете использовать пути, предоставленные функцией find в канале, указать ее вывод (опция -fprint) или выполнить команду для каждого найденного файла (-exec). Есть также опции (например, -print0), разработанные для избежания проблем с некоторыми проблемными символами в именах файлов.

Обратитесь к man find для получения дополнительной информации.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .