==== 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