GNU/Linux >> Tutoriales Linux >  >> Linux

Buscar y cambiar el nombre de un directorio

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


Linux
  1. Cómo encontrar el número de archivos en un directorio y subdirectorios

  2. ¿Buscar todo [nombre de archivo].mp4 y cambiar el nombre de [nombre de archivo].audio?

  3. ¿Ssh y permisos de directorio de inicio?

  4. ¿Excluir directorio en Buscar?

  5. ¿Buscar directorio de exclusión?

¿Linux encuentra y elimina todos los enlaces simbólicos relacionados con un directorio?

Linux:busque el número de archivos en un directorio y subdirectorios

6 ejemplos de comandos mv para mover o renombrar archivos y directorios de Linux

Cómo ejecutar el comando "buscar" solo en el directorio actual y no en los subdirectorios

Buscar y reemplazar con sed en directorios y subdirectorios

Encuentre múltiples archivos y cámbieles el nombre en Linux