Me gustaría agregar un prefijo en todas las carpetas y directorios.
Ejemplo:
yo tengo
Hi.jpg
1.txt
folder/
this.file_is.here.png
another_folder.ok/
Me gustaría agregar el prefijo "PRE_"
PRE_Hi.jpg
PRE_1.txt
PRE_folder/
PRE_this.file_is.here.png
PRE_another_folder.ok/
Saludos,

Respuestas:
Gracias a Peter van der Heijden , aquí hay uno que funcionará para nombres de archivo con espacios en ellos:
("-" es necesario para tener éxito con los archivos que comienzan con guiones, cuyos nombres se interpretarían como modificadores para el comando mv)
fuente
lscomando*y pone comillas dobles alrededor de los argumentosmv, funcionará para archivos que contengan espacios.Utilice el script de cambio de nombre de esta manera:
No hay problemas con metacaracteres o espacios en blanco en los nombres de archivo.
fuente
renameSiempre me ha ayudado a manejar múltiples cambios de nombre de archivos muy fácilmente.Para agregar prefijo o sufijo para archivos (directorios), puede usar la forma simple y poderosa de xargs :
Está utilizando la opción de sustitución de parámetro de xargs: -I. Y puede obtener más detalles en la página del manual.
fuente
ls *.old | xargs -I {} mv {} PRE_{}Esto podría hacerse ejecutando un
findcomando simple :El comando anterior prefijará todos los archivos y carpetas en el directorio actual con
PRE_.fuente
Para agregar un prefijo a todos los archivos y carpetas en el directorio actual utilizando util-linux
rename(en lugar deprenamela variante perl de Debian y ciertos otros sistemas), puede hacer lo siguiente:Esto encuentra la primera aparición de la cadena vacía (que se encuentra inmediatamente) y luego reemplaza esa aparición con su prefijo, luego pega el resto del nombre del archivo al final de ese. Hecho.
Para sufijos , debe usar la versión perl o usar find .
fuente
util-linuxen Debian Stretch parece proporcionar esto como/usr/bin/rename.ul.Si tienes Ruby (1.9+)
fuente
con Perl:
fuente
Aquí hay un script simple que puede usar. Me gusta usar el módulo no estándar
File::chdirpara manejar lascdoperaciones de administración , por lo que para usar este script tal como está, necesitará instalarlo (sudo cpan File::chdir).fuente
En mi sistema, no tengo el
renamecomando. Aquí hay un simple trazador de líneas. Encuentra todos los archivos HTML de forma recursiva y agregaprefix_delante de sus nombres:fuente
findusted también puede ejecutar comandos, sin necesidad de un bucle: stackoverflow.com/a/33297439/2351568Esto prefijará sus archivos en su directorio.
El
${f%/*}es el camino hasta la última barra inclinada/-> el directorioEl
${f##*/}es el texto sin nada antes de la última barra inclinada/-> nombre de archivo sin la rutaAsí es como va:
fuente