
Tengo un directorio lleno de nombres de archivos que deben cambiarse. No necesito simplemente cambiar el nombre de un sufijo o prefijo, sino cambiar completamente el nombre de los archivos.
Tengo los nuevos nombres de archivos contenidos en un archivo llamado new_names.
¿Qué comando puedo usar para leer los nombres contenidos en new_names y cambiar el nombre de los archivos en un directorio?
Respuesta1
Puede usar esto para generar una lista de mv
comandos:
paste /path/to/new_names <(ls /path/to/files | grep -v new_names) | awk '$2 !~ /^$/ {print "mv " $2,$1}'
Si se ve bien, entonces puedes ejecutarlo con:
cd /path/to/files
$( paste /path/to/new_names <(ls /path/to/files | grep -v new_names) | awk '$2 !~ /^$/ {print "mv " $2,$1}' )