O erro aparece porque você está movendo uma pasta " prog-*
".
O comportamento real de find
é:
find
analyzes first the directory itself, and then its contents.
Então, find
, no seu exemplo:
1. encontra o diretório prog-3.6.9-stable-gnu
2. renomeia em prog
(agora tem um novo nome)
3. tenta acessar prog-3.6.9-stable-gnu
4. devolve um erro porque agora não é possível encontrar a pasta prog-3.6.9-stable-gnu
encontrar de analisar primeiro o diretório e, em seguida, o seu conteúdo, é conhecida como "largura de banda inicial". O oposto é "profundidade em primeiro percurso". Existe uma opção -depth
que invoca isso. É interessante ler as menções de -depth
na página man do find (1) .
- "
-depth
: Processe o conteúdo de cada diretório antes do próprio diretório." - "A ação
-delete
também implica-depth
." - "Não se esqueça de que a linha de comando de localização é avaliada como uma expressão, portanto, colocar
-delete
primeiro fará com que você tente excluir tudo abaixo dos pontos iniciais especificados." - "Ao testar uma linha de comando de localização que você pretende usar com
-delete
, você deve especificar explicitamente-depth
para evitar surpresas posteriores." - "Como
-delete
implica em-depth
, você não pode usar utilmente-prune
e-delete
juntos".