Opciones para Ordenar Downloads en Linux OSs
Introducción
Este documento ofrece métodos para organizar la carpeta ~/Downloads en Ubuntu, renombrando archivos con el prefijo YYMMDD_nombre (YY: últimos 2 dígitos del año, MM: mes 01-12, DD: día de modificación) y otras estrategias de ordenamiento. Las soluciones usan herramientas de terminal y Emacs.
Renombrar Archivos con YYMMDDnombre
Renombrar archivos según su fecha de modificación usando el formato solicitado.
Usando `find` y `mv` en la Terminal
- Descripción: Busca archivos y los renombra con la fecha de modificación.
Comando:
cd ~/Downloads find . -type f -exec sh -c 'mv "$1" "$(date -r "$1" +%y%m%d)_$(basename "$1")"' _ {} \;
- Explicación:
find . -type f: Busca solo archivos (no directorios).date -r "$1" +%y%m%d: Extrae la fecha de modificación (YYMMDD).basename "$1": Conserva el nombre original.
- Ejemplo:
documento.pdf→250316_documento.pdf(modificado el 16/03/2025). - Precaución: Haz una copia de seguridad antes (ej.
cp -r ~/Downloads ~/Downloads_backup).
Script Bash para Mayor Control
- Descripción: Script reutilizable con manejo de conflictos.
Implementación:
cd ~/Downloads for file in *; do if [ -f "$file" ]; then prefix=$(stat -c %y "$file" | cut -d' ' -f1 | sed 's/-//g' | cut -c3-8) new_name="${prefix}_$file" if [ -e "$new_name" ]; then echo "Conflicto: $new_name ya existe, omitiendo..." else mv "$file" "$new_name" fi fi done
- Uso: Guarda como
rename_downloads.sh, da permisos conchmod +x rename_downloads.sh, y ejecuta con./rename_downloads.sh. - Beneficio: Evita sobrescribir archivos con nombres duplicados.
Desde Emacs con Dired
- Descripción: Usa Dired para renombrar manualmente o con un script.
- Pasos:
- Abre Dired:
C-x C-f ~/Downloads RET. - Marca archivos con
m. - Ejecuta un comando shell en los marcados:
! for f in %f; do mv "$f" "$(date -r "$f" +%y%m%d)_$f"; done.
- Abre Dired:
Alternativa con Elisp:
(defun rename-downloads-yymmdd () (interactive) (dired "~/Downloads") (dired-do-shell-command "mv ? $(date -r ? +%y%m%d)_?" nil (dired-get-marked-files)))
- Añade a
init.ely ejecuta conM-x rename-downloads-yymmdd.
- Añade a
- Beneficio: Integración directa en Emacs.
Otras Opciones de Ordenamiento
Alternativas para organizar ~/Downloads más allá del renombramiento.
Clasificación por Tipo de Archivo
- Descripción: Mover archivos a subcarpetas según extensión.
Comando:
cd ~/Downloads mkdir -p Documents Images Videos Other find . -maxdepth 1 -type f -name "*.pdf" -exec mv {} Documents/ \; find . -maxdepth 1 -type f -name "*.jpg" -o -name "*.png" -exec mv {} Images/ \; find . -maxdepth 1 -type f -name "*.mp4" -o -name "*.mkv" -exec mv {} Videos/ \; find . -maxdepth 1 -type f -not -path "./*/*" -exec mv {} Other/ \;
- Beneficio: Orden visual por categoría (ej. PDFs en
Documents/).
Orden por Fecha en Subcarpetas
- Descripción: Crear carpetas YYMMDD y mover archivos según modificación.
Comando:
cd ~/Downloads find . -type f -exec sh -c 'mkdir -p "$(date -r "$1" +%y%m%d)"; mv "$1" "$(date -r "$1" +%y%m%d)/"' _ {} \;
- Ejemplo: Archivos del 16/03/2025 van a
250316/. - Beneficio: Agrupación cronológica sin renombrar.
Automatización con `inotifywait`
- Descripción: Monitorear descargas nuevas y organizarlas automáticamente.
- Implementación:
- Instala
inotify-tools:sudo apt install inotify-tools. Script:
inotifywait -m ~/Downloads -e create -e moved_to | while read path action file; do prefix=$(date -r "$path$file" +%y%m%d) mv "$path$file" "$path${prefix}_$file" done- Ejecuta con
./watch_downloads.sh & disownpara que corra en segundo plano.
- Instala
- Beneficio: Orden en tiempo real.
Recomendaciones Generales
- Copia de seguridad:
tar -czf ~/downloads_backup.tar.gz ~/Downloadsantes de pruebas. - Prueba primero: Usa
echoen lugar demvpara simular (ej.echo mv "$file" "$new_name"). - Integración con Emacs: Usa
M-x shelloeshellpara ejecutar comandos desde Emacs.
Conclusión
La opción 1.1 (find y mv) es la más simple y directa para renombrar con YYMMDD. Para automatización, usa 2.3 (inotifywait). Si prefieres carpetas, opta por 2.1 o 2.2. Combina según tus necesidades: renombrar + clasificar es una solución robusta.