find -maxdepth 1 -type d | while read -r dir; do printf "%s:\t" "$dir"; find "$dir" -type f | wc -l; done
Завдяки Жилу та ксенотерациду за виправлення безпеки та сумісності.
Перша частина: find -maxdepth 1 -type d
поверне список усіх каталогів у поточному робочому каталозі. Це трубопровід до ...
Друга частина: while read -r dir; do
починається цикл "час" - доки відкрита труба, що надходить у той час, (це стосується, поки не буде відправлений весь список каталогів), команда "читання" помістить наступний рядок у змінну "dir". Потім це продовжується ...
Третя частина: printf "%s:\t" "$dir";
надрукує рядок у "$ dir" (у якому є одне з імен каталогів), після чого вкладка.
Четверта частина: find "$dir -f file"
складає список усіх файлів усередині імені каталогу, що міститься у "$ dir". Цей список надіслано ..
П’ята частина: wc -l;
підраховує кількість рядків, що надсилаються на його стандартний вхід.
Заключна частина: done
просто закінчується цикл while.
Таким чином ми отримуємо список усіх каталогів у поточному каталозі. Для кожного з цих каталогів ми генеруємо список усіх файлів у ньому, щоб ми могли порахувати їх усі, використовуючи wc -l
. Результат виглядатиме так:
./dir1: 234
./dir2: 11
./dir3: 2199
...