¿Cómo puedo cambiar el nombre de las imágenes con el comando 'renombrar' de "algo_full.jpg" a "algo_500.jpg" recursivo?
Respuesta1
Básicamente, puedes usar la rename
herramienta para eso. Debería venir en una versión basada en Perl con distribuciones de Linux basadas en Debian, pero puedes fácilmenteDescargalodesde la fuente también (obviamente, primero debes hacerlo ejecutable con chmod +x
).
El siguiente comando reemplazará la _full
parte con _500
todos los archivos JPG en el directorio actual.
rename 's/_full/_500/' *.jpg
Para hacer esto de forma recursiva, comenzando desde su directorio actual, use rename
con find
.
find . -type f -iname "*.jpg" -exec rename 's/_full/_500/' {} \;
Nota:Es posible que desee probar el comando antes de ejecutarlo. Para hacer eso, agregue la -n
opción a rename
(por ejemplo, entre rename
y la 's//'
cadena).
Respuesta2
Quizás quieras investigarzmv. zmv es una característica específica de zsh y requiere autoload -U zmv
estar en algún lugar de su .zshrc
archivo.
EDITAR: Como ejemplo, la tarea que planteó el OP podría resolverse con
noglob zmv '(*)_full.(*)' '$1_500.$2'
Un extracto de la zshcontrib
página de manual:
zmv [ -finqQsvwW ] [ -C | -L | -M | -p program ] [ -o optstring ] srcpat dest
Mueva (generalmente, cambie el nombre) archivos que coincidan con el patrón srcpat a archivos correspondientes que tengan nombres de la forma dada por dest, donde srcpat contiene paréntesis que rodean los patrones que serán reemplazados a su vez por $1, $2, ... en dest. Por ejemplo,
zmv '(*).lis' '$1.txt'
cambia el nombre
foo.lis
afoo.txt
,my.old.stuff.lis
amy.old.stuff.txt
, etc.El patrón siempre se trata como un patrón EXTENDED_GLOB. Cualquier archivo cuyo nombre no cambie mediante la sustitución simplemente se ignora. Cualquier error (una sustitución dio como resultado una cadena vacía, dos sustituciones dieron el mismo resultado, el destino era un archivo normal existente y no se proporcionó -f) hace que toda la función se cancele sin hacer nada.
Los patrones EXTENDED_GLOB son tremendamente poderosos.Aquíes una buena introducción al concepto.