Quiero ejecutar un comando en una carpeta muy grande para ordenar cada elemento en subcarpetas según la fecha de modificación. ¿Se puede hacer esto con una línea?
Es decir, todos los archivos modificados en julio de 2013 se trasladarían a 2013-07
etc.
Algo con find
... analiza el año/mes, luego muévete a la carpeta correspondiente.
La man
página para Mac find
está aquí:https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man1/find.1.html
Respuesta1
encontré la respuestaaquí... y lo modifiqué según mis necesidades:
for f in 12*; do
dir='/foo/bar/'$(stat -f%Sm -t%Y-%m "$f")
[ -d "$dir" ] || mkdir "$dir"
mv -nv "$f" "$dir"/
done
Puede reemplazar el m
in -f%Sm
con cualquiera de los siguientes:
a, m, c, b
- El archivo de tiempo fue el últimoaaccedido ometroodificado, de cuando el inodo fue la última vezCahorcado, o elBTercer tiempo del inodo.