Список протоколов файлов и каталогов на 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?
  • Использовать xargs для перемещения файлов из каталога
  • как суммировать вывод awk или другого выражения с помощью xargs
  • Переформатирование большого количества XML-файлов
  • Добавить суффикс ко всем файлам без определенного расширения и сохранить расширение файла
  • копировать файлы с целевым именем на основе md5, используя find и xargs
  • подстановка процесса для открытия списка файлов с приложением
  • Пауза (с чтением или аналогичным) в xargs
  • эхом basename под xargs?
  • команда после команды grep не работает
  • Interesting Posts

    Прямой stderr в файл по ssh

    Apache дает мне 403 на виртуальном хосте

    Как проверить систему Fedora, если IPv6 отключен или нет?

    iptables: загрузка квоты на каждый MAC-адрес для всех хостов

    Ошибка PPTP VPN: LCP, завершаемая одноранговым узлом

    Как iotop вычисляет относительную активность ввода-вывода?

    Пользователи, группы и другие пользователи устанавливают один пользовательский рабочий стол

    Использовать параметр загрузки для выполнения определенных действий после загрузки

    Мост OpenVPN. Не удается получить доступ к машинам в локальной сети

    Резервное копирование и восстановление ассоциации типа Wine и mime

    GeeXbox ls не показывает дату?

    учитывать производительность DRAM процессов при планировании

    Отключить оболочку пользователя по соображениям безопасности

    Debian 8 (Jessie) не загружается при перезагрузке с ошибкой «Не удалось запустить службу входа»,

    Как вернуться на ваш компьютер с ПК, и ваши USB-накопители с ОС Linux потеряны

    Linux и Unix - лучшая ОС в мире.