Cambiar el nombre del script bash: falso, no existe tal error de archivo o directorio

Cambiar el nombre del script bash: falso, no existe tal error de archivo o directorio

Estoy intentando cambiar el nombre de unos cientos de archivos en función de otro archivo en el mismo directorio. Encontré un script y con modificaciones tengo lo siguiente:

while read file; do echo mv "\"${file%/*}/Trailer.mov\"" "\"${file%.*}-Trailer.mov\""; done < <(find . -type f ! -name "Trailer.mov" -name "*.mkv")

Genera comandos mv así:

mv "./dir1/Trailer.mov" "./dir1/filename-Trailer.mov"

Los comandos mv cambian el nombre de los archivos correctamente (si existen) cuando los ejecuto manualmente. Cuando ejecuto el script sin eco me da errores como este:

mv: cannot stat ‘"./dir1/Trailer.mov"’: No such file or directory

Este error ocurre para cada elemento, independientemente de la existencia de los archivos. ¿Por qué sucede esto? Estoy ejecutando como root.

Respuesta1

Debe eliminar las comillas internas o utilizar eval.

El problema es que los "correos electrónicos ahora se consideran parte del nombre del archivo, es decir, se intenta acceder al nombre de archivo incorrecto (que no existe).

información relacionada