encontrar y rsync?


24

Quiero poder buscar archivos durante 14 días y más de 10k y luego sincronizar esos archivos encontrados a un destino.

¿Hay alguna manera de combinar estos dos comandos?

find ./ -mtime +14 -size +10k 
rsync --remove-sent-files -avz /src /dest

Respuestas:


33

Puede enviar la salida de find a rsync utilizando una de las opciones que se detallan a continuación.

Método 1

Estas 2 opciones son muy similares, ambas suponen que está cambiando los directorios a alguna ubicación y luego ejecuta el findcomando desde allí.

$ rsync -avz --remove-sent-files \
        --files-from=<(find ./ -mtime +14 -size +10k) ./ /dest

También puede usar una tubería para alimentar la lista en:

$ find ./ -mtime +14 -size +10k -print0 \
        | rsync -av --files-from=- --from0 ./ /dest

Método 2

Este método se puede ejecutar desde cualquier lugar.

$ find /src/dir/ -mtime +14 -size +10k -printf %P\\0 \
        | rsync --files-from=- --from0 /src/dir/ /dst/dir/
  • printf %P: Nombre del archivo con el nombre del argumento de la línea de comando bajo el cual se encontró eliminado. De esta manera, puede usar cualquier directorio src, sin necesidad de crear un CD en su directorio src primero.

Referencias

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.