Você precisa adicionar -mindepth 1
. Caso contrário você cd ..
sairá do diretório base original na primeira repetição do loop e terminará em seu diretório pai.
É fácil perceber quando você executa a expressão find
:
$ find . -type d -maxdepth 1
.
./abc
No primeiro loop, você cd .
, que não faz nada e, em seguida, cd ..
, a partir do qual não é possível inserir todos os outros diretórios encontrados.
Se não houver problema com espaços em nomes de diretório, você sempre poderá usar find $PWD
em vez de find .
para usar caminhos absolutos ou armazenar o $PWD
original em uma variável à qual você pode cd
( $OLDPWD
e cd -
provavelmente não funcionará), em vez de cd ..
.