A opção -exec
para find
executa um utilitário externo, possivelmente com alguma opção de linha de comando e outros argumentos.
Seu Unix não fornece cd
como um utilitário externo, apenas como um shell embutido, então find
falha em executá-lo. Pelo menos o macOS e o Solaris do fornecem cd
como um utilitário externo.
Haveria pouco ou nenhum uso para executar cd
dessa maneira, exceto como uma forma de testar se o nome do caminho encontrado por find
é um diretório no qual você seria capaz de cd
. O diretório de trabalho no seu shell interativo (ou o que estiver chamando find
) não mudaria de qualquer maneira.
Relacionados:
- Entendendo a opção -exec de 'localizar'
- Script para alterar o diretório atual (cd, pwd)
- Qual é o objetivo do comando externo 'cd'?
Se você estiver com problemas com o nome de um diretório sendo estranho ou extremamente difícil de digitar e quiser mudar para esse diretório, considere criar um link simbólico para o diretório e, em seguida, cd
usando esse link :
find . -inum 888696 -exec ln -s {} thedir ';'
Isso criaria um link simbólico chamado thedir
que apontaria para o diretório problemático. Você pode então mudar o diretório de trabalho com
cd thedir
(se o link existir no diretório atual). Isso evita modificar o diretório de qualquer maneira. Outra ideia seria renomear o diretório de maneira semelhante com find
, mas isso não seria aconselhável se outro programa esperasse que o diretório tivesse esse nome específico.