Это должно работать:
unset path
parts=$(pwd | awk 'BEGIN{FS="/"}{for (i=1; i < NF; i++) print $i}')
for part in $parts
do
path="$path/$part"
ls -ld $path # do whatever checking you need here
done
Когда я попробовал awk решение ennuikiller, оно пропустило текущий каталог для меня.
Так, в то время как немного поздно, вот решение только для удара:
foo=`pwd`
while [ "$foo" != "" ]; do
echo $foo # work with directory here
foo=${foo%/*}
done
Не знайте, является ли это самое изящное решение, но это работает. Я нашел простое объяснение обработки строк на tldp и перенес цикл вокруг этого.