Bash. Перебрати файли в каталозі

Напишу тут, бо скільки ж можна його згадувати.


1. При необхідності перебрати всі файли в будь-якому каталозі і виконати над ними якісь дії, можна скористуватися простим циклом:
for file in /etc/config/*; do wc -l $file; stat -c %s $file; done


2. Також можна використати і find для рекурсивного пошуку і додаткових фільтрів:
for file in `find /etc -type f -name "*.conf"`
do
wc -l $file;
stat -c %s $file;
done


3. Якщо виконується не більше однієї дії над файлом, можна обійтися без цикла:
find /etc -type f | xargs wc -l


4. Якщо в іменах файлів є пробіли, додаємо до find параметр -print0:
find /etc -type f -print0 | xargs -0 wc -l


Пишуть люди


Категорії: Bash