Risposte:
È possibile inviare l'output di find in rsync utilizzando una delle opzioni descritte di seguito.
Queste 2 opzioni sono molto simili, entrambe presumono che tu stia cambiando directory in una posizione e quindi eseguendo il find
comando da lì.
$ rsync -avz --remove-sent-files \
--files-from=<(find ./ -mtime +14 -size +10k) ./ /dest
Puoi anche usare una pipe per alimentare l'elenco in:
$ find ./ -mtime +14 -size +10k -print0 \
| rsync -av --files-from=- --from0 ./ /dest
Questo metodo può essere eseguito da qualsiasi luogo.
$ find /src/dir/ -mtime +14 -size +10k -printf %P\\0 \
| rsync --files-from=- --from0 /src/dir/ /dst/dir/
printf %P
: Nome del file con il nome dell'argomento della riga di comando in base al quale è stato trovato rimosso. In questo modo, è possibile utilizzare qualsiasi directory src, non è necessario eseguire prima il cd nella directory src.