एक निर्देशिका में फ़ाइलों के माध्यम से पुनरावृत्ति आसानी से किया जा सकता है:
find . -type f -exec bar {} \;
हालांकि, उपरोक्त अधिक जटिल चीजों के लिए काम नहीं करता है, जहां बहुत सारी सशर्त शाखाएं, लूपिंग आदि करने की आवश्यकता होती है। मैंने इसका उपयोग उपरोक्त के लिए किया था:
while read line; do [...]; done < <(find . -type f)
हालाँकि, ऐसा लगता है कि यह अस्पष्ट वर्ण वाली फ़ाइलों के लिए काम नहीं करता है:
$ touch $'a\nb'
$ find . -type f
./a?b
क्या कोई विकल्प है जो ऐसे अस्पष्ट पात्रों को अच्छी तरह से संभालता है?
read line
करने के लिए IFS= read -r line
। एकमात्र चरित्र जो इसे तोड़ देगा, फिर एक नई रेखा है।
-d $'\0'
बेहतर है।
find ... -exec bash -c 'echo filename is in \$0: "$0"' {} \;
यह करने के लिए एक बेहतर तरीका है।