А если вы хотите сделать это с помощью чистого сценария оболочки и не хотите использовать find, попробуйте вот это:
#!/bin/bash
#Simple bash recursive loop search - Luciano A. Martini =)
nextdir(){
for f in *; do
if [ -d "$f" ] && [ ! -L "$f" ]; then
#echo "Inside folder: $PWD/$f"
nextdir "$f"
cd ..
continue
else
echo "$PWD/$f"
fi
done
}
#call the function for the first time...
nextdir
Сохраните пример как recursive-loop и выполните в папке, в которой вы хотите произвести поиск. Он будет делать то же самое, что и find или другие рекурсивные механизмы, но с использованием цикла for, и вы сможете настроить его под свои нужды!
$./recursive-loop
/home/luciano/readme.txt
/home/luciano/images/a.bmp
/home/luciano/texts/a.txt
/home/luciano/texts/b.txt
/home/luciano/texts/music/lyrics.txt
(...)