trouver et rsync?


24

Je veux pouvoir rechercher des fichiers sur 14 jours et plus de 10k et rsync ces fichiers trouvés vers une destination.

Existe-t-il un moyen de combiner ces deux commandes?

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

Réponses:


33

Vous pouvez envoyer la sortie de find dans rsync en utilisant l'une des options décrites ci-dessous.

Méthode n ° 1

Ces 2 options sont très similaires, elles supposent toutes les deux que vous modifiez les répertoires vers un emplacement et que vous exécutez ensuite la findcommande à partir de là.

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

Vous pouvez également utiliser un canal pour alimenter la liste en:

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

Méthode n ° 2

Cette méthode peut être exécutée de n'importe où.

$ find /src/dir/ -mtime +14 -size +10k -printf %P\\0 \
        | rsync --files-from=- --from0 /src/dir/ /dst/dir/
  • printf %P: Nom du fichier avec le nom de l'argument de ligne de commande sous lequel il a été trouvé supprimé. De cette façon, vous pouvez utiliser n'importe quel répertoire src, pas besoin de cd dans votre répertoire src d'abord.

Les références

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.