Bir dizindeki dosyalar arasında yinelemeli olarak yineleme yapmak şu şekilde yapılabilir:
find . -type f -exec bar {} \;
Bununla birlikte, yukarıdakiler, çok sayıda koşullu dal, döngü vb. Yapılması gereken daha karmaşık şeyler için işe yaramaz. Bunu yukarıdaki için kullanıyordum:
while read line; do [...]; done < <(find . -type f)
Ancak, bu belirsiz karakterler içeren dosyalar için işe yaramaz gibi görünüyor:
$ touch $'a\nb'
$ find . -type f
./a?b
Bu tür belirsiz karakterleri iyi işleyen bir alternatif var mı?
read line
To IFS= read -r line
. O zaman onu kıracak tek karakter yeni satır.
-d $'\0'
tercih edilir.
find ... -exec bash -c 'echo filename is in \$0: "$0"' {} \;
bunu yapmanın daha iyi bir yoludur.