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
ls
comando*
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
rename
Siempre 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
find
comando 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 deprename
la 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-linux
en 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::chdir
para manejar lascd
operaciones 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
rename
comando. Aquí hay un simple trazador de líneas. Encuentra todos los archivos HTML de forma recursiva y agregaprefix_
delante de sus nombres:fuente
find
usted 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