Список протоколов файлов и каталогов на du показывает только размеры каталогов?

Предположим, у меня есть каталог с несколькими подкаталогами, каждый из которых содержит некоторые файлы:

1/a.txt 1/b.txt 2/c.txt 2/d.txt 3/e.txt 3/f.txt 

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


Мои бессмысленные упражнения

Запуск find . возвращает список всех файлов и каталогов, поэтому я попытался выполнить его так:

 find . | xargs du 

но это просто возвращает размеры каталогов 1, 2 и 3. Мне не хватает некоторого понимания, потому что, по моему мнению, xargs должны отображать каждую строку вывода из find на вызов du .

Если вместо этого я использую:

 find . | xargs du -a 

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

Что тут происходит?

One Solution collect form web for “Список протоколов файлов и каталогов на du показывает только размеры каталогов?”

Что происходит, так это то, что xargs ставит (если может) все имена в одной командной строке, так что вы видите только одну команду, переданную в du . Затем du игнорирует имена файлов (как и следовало ожидать: файлы являются частью каталогов и не учитывают их дважды).

Если вы используете параметр -n 1 для xargs , он разделит команду вверх, и вы увидите что-то еще, как вы ожидаете.

  • Как найти и скопировать файлы на основе расширения?
  • Удалите файлы, которые предоставляются по каналу
  • xargs, записи и стандартный ввод
  • Почему xargs пропускает первый аргумент при передаче в подоболочку?
  • Объединение тысяч файлов:> vs >>
  • Объединение bash% с xargs%
  • Что делает «-t» в команде mv? Пример ниже
  • Где «xargs» добавляет опцию из STDIN?
  • Как скопировать список файлов и настроить имена файлов назначения на лету?
  • Странная ошибка «Нет такого файла» с «xargs» и «file»
  • grep для файлов и открыть итоговые совпадения
  • Linux и Unix - лучшая ОС в мире.