Saya ingin dapat mencari file lebih dari 14 hari dan lebih dari 10k dan daripada rsync file yang ditemukan ke tujuan.
Apakah ada cara untuk menggabungkan kedua perintah ini?
find ./ -mtime +14 -size +10k
rsync --remove-sent-files -avz /src /dest
Anda dapat mengirim output find ke rsync menggunakan salah satu opsi yang diuraikan di bawah ini.
Kedua opsi ini sangat mirip, keduanya menganggap Anda mengubah direktori ke beberapa lokasi dan kemudian menjalankan find
perintah dari sana.
$ rsync -avz --remove-sent-files \
--files-from=<(find ./ -mtime +14 -size +10k) ./ /dest
Anda juga dapat menggunakan pipa untuk memberi makan daftar di:
$ find ./ -mtime +14 -size +10k -print0 \
| rsync -av --files-from=- --from0 ./ /dest
Metode ini dapat dijalankan dari mana saja.
$ find /src/dir/ -mtime +14 -size +10k -printf %P\\0 \
| rsync --files-from=- --from0 /src/dir/ /dst/dir/
printf %P
: Nama file dengan nama argumen baris perintah di mana ia ditemukan dihapus. Dengan cara ini, Anda dapat menggunakan direktori src, tidak perlu cd ke direktori src Anda terlebih dahulu.