Es un error inofensivo del que puedes deshacerte con el -depth
opción.
find . -depth -type d -name 'thefoldername*' -exec mv {} newfoldername \;
El comportamiento normal de Find es procesar directorios y luego recurrir a ellos. Ya que lo renombró, encuentre quejas cuando intenta recurrir. El -depth
La opción le dice a find que recurra primero, luego procese el directorio después.
Falta el -execdir ¡opción! Como se indica en las páginas man de find:
-execdir command {};
Me gusta -exec
, pero el comando especificado se ejecuta desde el subdirectorio que contiene el archivo coincidente, que normalmente no es el directorio en el que comenzó a buscar.
find . -depth -type d -name 'thefoldername*' -execdir mv {} newfoldername \;
Con la respuesta anterior, el contenido de mis carpetas desaparece.
Esta es mi solución. Funciona bien:
for i in
find -type d -name 'oldFolderName'
;dodirname=$(dirname "$i")mv $dirname/oldFolderName $dirname/newFolderNamehecho