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: 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.
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 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