Ein üblicher Weg, Dinge mit ein paar Dateien zu tun, ist - und schlagen Sie mich nicht dafür:
for f in $(ls); do …
Um vor Dateien mit Leerzeichen oder anderen seltsamen Zeichen sicher zu sein, wäre ein naiver Weg:
find . -type f -print0 | while IFS= read -r -d '' file; …
Hier -d ''steht kurz für das Einstellen des ASCII NUL wie in -d $'\0'.
Aber warum ist das so? Warum sind ''und $'\0'das gleiche? Liegt das daran, dass die C-Wurzeln von Bash mit einer leeren Zeichenfolge immer nullterminiert sind?
for f in *anstatt sie zu analysieren ls.
for i in $(ls)ist schrecklich dumm - ich schäme mich fast, dass ich es hier als schlechtes Beispiel verwendet habe.
find … -execDateien anstelle von Schleifen verwenden, was in den meisten Fällen funktioniert, in denen Sie stattdessen eine solche for-Schleife verwenden würden. Hier findkümmert sich alles um Sie.