==== Ordenar ficheros (vídeos / fotos) concatenando como prefijo / sufijo la fecha de modificación ====
Para organizar múltiples imágenes o vídeos, algo muy socorrido es poder agregar de manera automática y masiva un sufijo o prefijo (más útil por norma) con la fecha de modificación del archivo. Para ello podemos hacer uso de un comando como el siguiente.
**Lectura previa recomendada para entender las diferentes fechas**: [[https://www.busindre.com/comando_stat_access_modify_change|Leer]]
# Agregando un prefijo con la fecha de modificación a todos los ficheros.
for f in *; do mv -- "$f" "$(date +%Y-%m-%d -r "${f}")-$f"; done
# Agregando un sufijo con la fecha de modificación a todos los ficheros.
for f in *; do mv -- "$f" "$f-$(date +%Y-%m-%d -r "${f}")"; done
Ejemplo.
# Listar los ficheros con extensión mp4.
ls -l *.mp4
-rw-r--r-- 1 XXX XXX 228875853 mar 2 2015 VIDEO0130.mp4
-rw-r--r-- 1 XXX XXX 42700744 abr 3 2015 VIDEO0135.mp4
-rw-r--r-- 1 XXX XXX 111839232 jul 11 2015 VIDEO0154.mp4
-rw-r--r-- 1 XXX XXX 48100045 jul 11 2015 VIDEO0155.mp4
-rw-r--r-- 1 XXX XXX 36963845 jul 11 2015 VIDEO0156.mp4
-rw-r--r-- 1 XXX XXX 83025336 jul 11 2015 VIDEO0157.mp4
-rw-r--r-- 1 XXX XXX 3189836 ene 6 2002 VIDEO0165.mp4
-rw-r--r-- 1 XXX XXX 2969562 dic 25 2015 VIDEO0167.mp4
-rw-r--r-- 1 XXX XXX 36778469 ene 3 2016 VIDEO0169.mp4
-rw-r--r-- 1 XXX XXX 82058520 may 10 21:17 VIDEO0172.mp4
# Agregar un prefijo con la fecha de modificación solo a los ficheros .mp4 del directorio actual.
for f in *.mp4; do mv -- "$f" "$(date +%Y-%m-%d -r "${f}")-$f"; done
# Comprobar el resultado.
ls -l *.mp4
-rw-r--r-- 1 XXX XXX 3189836 ene 6 2002 2002-01-06-VIDEO0165.mp4
-rw-r--r-- 1 XXX XXX 228875853 mar 2 2015 2015-03-02-VIDEO0130.mp4
-rw-r--r-- 1 XXX XXX 42700744 abr 3 2015 2015-04-03-VIDEO0135.mp4
-rw-r--r-- 1 XXX XXX 111839232 jul 11 2015 2015-07-11-VIDEO0154.mp4
-rw-r--r-- 1 XXX XXX 48100045 jul 11 2015 2015-07-11-VIDEO0155.mp4
-rw-r--r-- 1 XXX XXX 36963845 jul 11 2015 2015-07-11-VIDEO0156.mp4
-rw-r--r-- 1 XXX XXX 83025336 jul 11 2015 2015-07-11-VIDEO0157.mp4
-rw-r--r-- 1 XXX XXX 2969562 dic 25 2015 2015-12-25-VIDEO0167.mp4
-rw-r--r-- 1 XXX XXX 36778469 ene 3 2016 2016-01-03-VIDEO0169.mp4
-rw-r--r-- 1 XXX XXX 82058520 may 10 21:17 2016-05-10-VIDEO0172.mp4
==== Cambiar de extensión todos los ficheros de una carpeta ====
Cambiar de extensión todos los ficheros de una carpeta.
Remplazar todas las extensiones JPEG por jpeg en todos los archivos *.JPEG
# Usando rename (util-linux).
rename JPEG jpeg *.JPEG
rename 's/JPEG/jpeg/' *.JPEG # Sistemas Debian y posiblemente derivados.
# Usando el comando mv de la misma manera que vimos anteriormente.
for f in *.JPEG; do mv -- "$f" "${f%.JPEG}.jpeg"; done
==== Eliminar prefijos / sufijos de múltiples ficheros ====
Eliminar prefijos y sufijos puede hacerse usando la expansión de variables de Bash y el comando mv.
Eliminar prefijo: Eliminar todo hasta llegar a un patrón ("_").
# Ficheros a los que se les quiere quitar el prefijo "d2221f1bd1b59373_" y "d3b66b4e4e_" respectivamente.
d2221f1bd1b59373_fichero_1.mp3
d3b66b4e4e_fichero_2.mp3
for VAR in *.mp3; do mv "$VAR" "${VAR#*_}"; done
# Ficheros resultantes.
fichero_1.mp3
fichero_2.mp3
Eliminar sufijo: Eliminar desde el final del nombre hasta llegar a un patrón, en este caso "_".
# Ficheros a los que se les quiere quitar el prefijo d2221f1bd1b59373_ y d3b66b4e4e_ respectivamente.
fichero_1.mp3_d2221f1bd1b59373
fichero_2.mp3_d3b66b4e4e
for VAR in *; do mv "$VAR" "${VAR%_*}"; done
# Ficheros resultantes.
fichero_1.mp3
fichero_2.mp3