diumenge, 18 de novembre de 2012

#bash Copiar fitxers en carpetes en funció de la data de creació d'aquests

Imagineu que teniu un directori on rebeu fitxers, i els heu d'organitzar movent cada fitxer en una carpeta associada amb la seva data de creació, i això des de la línia de comandes. En sistemes tipus Unix la data de creació no la teniu però, sí la data de modificació, la qual coincideix amb la de creació si sabeu amb seguretat que el fitxer no s'ha modificat.

El següent codi copia tots els fitxers del directori actual creats el dia 8 de novembre en una carpeta 2011_11_08.

for i in `find . -type f -newermt 2012-11-08 ! -newermt 2012-11-09`; do mv $i 2012_11_08;done


Per automatitzar l'operació per a tots els dies del mes només caldria afegir una iteració externa per a cada dia del mes.

He trobat la pista a Stackoverflow.


Creative Commons License + GNU FDL