Pengulangan secara berulang melalui file dalam direktori dapat dengan mudah dilakukan dengan:
find . -type f -exec bar {} \;
Namun, di atas tidak bekerja untuk hal-hal yang lebih kompleks, di mana banyak cabang bersyarat, perulangan dll perlu dilakukan. Saya menggunakan ini untuk hal di atas:
while read line; do [...]; done < <(find . -type f)
Namun, sepertinya ini tidak berfungsi untuk file yang berisi karakter tidak jelas:
$ touch $'a\nb'
$ find . -type f
./a?b
Apakah ada alternatif yang menangani karakter tidak jelas seperti itu dengan baik?
read line
ke IFS= read -r line
. Satu-satunya karakter yang akan memecahnya adalah baris baru.
-d $'\0'
lebih disukai.
find ... -exec bash -c 'echo filename is in \$0: "$0"' {} \;
adalah cara yang lebih baik untuk melakukannya.