Використовуючи gnu find, я думаю, що саме цього ви хочете. Він знаходить усі реальні файли, а не каталоги (-тип f), і для кожного друкується ім'я файлу (% p), вкладка (\ t), розмір у кілобайтах (% k), суфікс "KB", а потім новий рядок (\ n).
find . -type f -printf '%p\t%k KB\n'
Якщо команда printf не форматує речі так, як вам потрібно, ви можете використовувати exec, а потім команду, яку потрібно виконати для кожного файлу. Використовуйте {} для імені файлу та завершіть команду крапкою з комою (;). На більшості оболонок всі три символи повинні бути уникнуті зворотним нахилом.
Ось просте рішення, яке знаходить і роздруковує їх за допомогою "ls -lh", яке покаже вам розмір у читаному для людини вигляді (k для кілобайт, M для мегабайт):
find . -type f -exec ls -lh \{\} \;
Як ще одна альтернатива, "wc -c" надрукує кількість символів (байтів) у файлі:
find . -type f -exec wc -c \{\} \;
find . -name '*.ear' -exec ls -lh {} + \;
(розширення GNU) абоfind . -name '*.ear' -print0 | xargs -0 ls -lh
. Крім того, ви можете додати,-type f
якщо вас цікавлять лише файли (або додати-d
до ls, якщо ви хочете, щоб самі каталоги були включені без їх вмісту).