Das rekursive Durchlaufen von Dateien in einem Verzeichnis kann auf einfache Weise erfolgen durch:
find . -type f -exec bar {} \;
Das oben Genannte funktioniert jedoch nicht für komplexere Dinge, bei denen viele bedingte Verzweigungen, Schleifen usw. ausgeführt werden müssen. Ich habe dies für die oben genannten verwendet:
while read line; do [...]; done < <(find . -type f)
Es sieht jedoch so aus, als ob dies nicht für Dateien funktioniert, die dunkle Zeichen enthalten:
$ touch $'a\nb'
$ find . -type f
./a?b
Gibt es eine Alternative, die solche dunklen Zeichen gut handhabt?
read line
auf ändern IFS= read -r line
. Das einzige Zeichen, das es dann unterbricht, ist eine neue Zeile.
-d $'\0'
ist vorzuziehen.
find ... -exec bash -c 'echo filename is in \$0: "$0"' {} \;
ist ein besserer Weg, es zu tun.