Sie können die Ausgabe von find mit einer der folgenden Optionen an rsync senden.
Methode 1
Diese beiden Optionen sind sich sehr ähnlich. Beide setzen voraus, dass Sie die Verzeichnisse an einen bestimmten Ort verschieben und dann den find
Befehl von dort ausführen.
$ rsync -avz --remove-sent-files \
--files-from=<(find ./ -mtime +14 -size +10k) ./ /dest
Sie können auch eine Pipe verwenden, um die Liste einzugeben:
$ find ./ -mtime +14 -size +10k -print0 \
| rsync -av --files-from=- --from0 ./ /dest
Methode # 2
Diese Methode kann von überall ausgeführt werden.
$ find /src/dir/ -mtime +14 -size +10k -printf %P\\0 \
| rsync --files-from=- --from0 /src/dir/ /dst/dir/
printf %P
: Dateiname mit dem Namen des Befehlszeilenarguments, unter dem es gefunden wurde, entfernt. Auf diese Weise können Sie jedes src-Verzeichnis verwenden, ohne zuerst in Ihr src-Verzeichnis cden zu müssen.
Verweise