Możesz wysłać wyjście z find do rsync przy użyciu jednej z opcji opisanych poniżej.
Metoda nr 1
Te dwie opcje są bardzo podobne, obie zakładają, że zmieniasz katalogi w pewną lokalizację, a następnie uruchamiasz find
stamtąd polecenie.
$ rsync -avz --remove-sent-files \
--files-from=<(find ./ -mtime +14 -size +10k) ./ /dest
Możesz także użyć potoku, aby wprowadzić listę:
$ find ./ -mtime +14 -size +10k -print0 \
| rsync -av --files-from=- --from0 ./ /dest
Metoda nr 2
Tę metodę można uruchomić z dowolnego miejsca.
$ find /src/dir/ -mtime +14 -size +10k -printf %P\\0 \
| rsync --files-from=- --from0 /src/dir/ /dst/dir/
printf %P
: Nazwa pliku z nazwą argumentu wiersza poleceń, pod którym został znaleziony, usunięty. W ten sposób możesz użyć dowolnego katalogu src, bez konieczności wcześniejszego zapisywania dysku CD w katalogu src.
Referencje