Tienes casi razón. -mtime 365
serán todos los archivos que tienen exactamente 365 días de antigüedad. Desea los que tienen 365 días o más, lo que significa agregar un +
antes del número como este -mtime +365
.
También puede estar interesado en la -maxdepth 1
bandera, que le impide mover elementos en subdirectorios.
Si desea asegurarse de que solo está moviendo archivos, no directorios, agréguelos -type f
a la línea.
Al final de la línea agregamos \;
para find
saber que ese es el final del comando que estamos ejecutando.
Entonces la línea debería ser:
find /sourcedirectory -maxdepth 1 -mtime +365 -type f -exec mv "{}" /destination/directory/ \;
Para estar seguro, comience simplemente haciendo un ls -l en lugar de mv, de esa manera puede verificar de antemano que está obteniendo exactamente los archivos que desea, antes de volver a ejecutarlo con mv, de esta manera:
find /sourcedirectory -maxdepth 1 -mtime +365 -type f -exec ls -l {} \;
Jenny D dice Reinstate Monica
fuente
mtime
es el tiempo de modificación (que suena como lo que probablemente quiera, la mayoría de las veces es). Si estos registros se leen / hacen referencia con frecuencia, es posible que desee utilizarlos-atime
(último tiempo de acceso).exec
declaración. Vea la página del manual parafind
.¡Tenga cuidado al usar las soluciones anteriores, las usé y terminé moviendo todos los archivos en todas las subcarpetas!
Este comando mueve todos los archivos en el directorio / source y todas las subcarpetas del directorio fuente:
En su lugar, use la opción -maxdepth 1 solo para archivos en / sourcedirectory
fuente
-type f
. ¿Quiso decir esto en lugar de que las subcarpetas se muevan pero su contenido permanezca en las subcarpetas en lugar de salir de ellas o ...?Puede usar este comando y especificar que solo encuentre archivos, no directorios, y que el archivo sea anterior a un año
fuente
rm
? Su comando elimina los archivos de registro y posiblemente el directorio de destino.Puede usar el siguiente comando con atime si se accede a los archivos con frecuencia
fuente
Correcto sería eliminar terminando barra diagonal de
/sourcedirectory/
fuente
find: missing argument
error, sin embargo, estoy de acuerdo en que quitar la barra diagonal final/sourcedirectory
es correcto.