Tengo un directorio llamado Dual_Loop_PLL
. Dentro de eso tengo 2 subdirectorios: agent
y test
. Dentro agent
tengo un directorio llamado dl_pll_agent
, y dentro dl_pll_agent
tengo dl_pll_agent2
. Quiero cambiar el nombre dl_pll_agent
y dl_pll_agent2
a dual_loop_pll_agent
y dual_loop_pll_agent2
respectivamente.
He usado el siguiente comando.
echo -e "Enter directory name you want to replace : "
read d1
echo "Enter directory name with which you want to replace : "
read d2
find -type d -exec rename $d1 $d2 * {} +
pero recibo el siguiente error
rename: renaming ./Dual_Loop_PLL/agents/dl_pll_agent/dl_pll_agent2 to ./Dual_Loop_PLL/agents/dual_loop_pll_agent/dl_pll_agent2 failed: No such file or directory
man rename
quién es el autor? ¿Cuál es la línea de uso derename --help
? (mostrar por pregunta de edición)agents
oagent
?ls -l ./Dual_Loop_PLL/agents ./Dual_Loop_PLL/agents/dual_loop_pll_agent
Respuestas:
¿Cuál es la salida de
ls -l ./Dual_Loop_PLL/agents ./Dual_Loop_PLL/agents/dual_loop_pll_agent
?Si contestará la pregunta anterior, tendrá la respuesta a su pregunta.
Lea también el manual
rename
y la sección del manual de bash sobre las citas: siempre cite sus variables, por ejemplo"$d1"
.Y no estoy seguro de lo que está haciendo
rename
, lo pasa: la evaluación de$d1
y$d2
, una lista de todos los archivos en el directorio actual y una lista de archivos encontrados porfind
.fuente
Personalmente uso
mv
para renombrar archivos y directorios, por lo que usaría:directamente.
fuente