bul ve rsync?


24

14 gün ve 10 bin üzeri dosyaları arayabilir ve bu dosyaları bir hedefe bulmuş olan rsync'i arayabilirim.

Bu iki komutu birleştirmenin bir yolu var mı?

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

Yanıtlar:


33

Aşağıda belirtilen seçeneklerden birini kullanarak find çıktısını rsync'e gönderebilirsiniz.

Yöntem 1

Bu 2 seçenek çok benzer, ikisi de dizinleri bir yere değiştirdiğinizi ve sonra findkomutu oradan çalıştırdığınızı varsayıyor .

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

Listeyi beslemek için bir boru da kullanabilirsiniz:

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

Yöntem 2

Bu yöntem her yerden çalıştırılabilir.

$ find /src/dir/ -mtime +14 -size +10k -printf %P\\0 \
        | rsync --files-from=- --from0 /src/dir/ /dst/dir/
  • printf %P: Dosyanın, kaldırıldığı bulunduğu komut satırı argümanının adı. Bu şekilde, herhangi bir src dizinini kullanabilirsiniz, önce src dizininize cd girmenize gerek yoktur.

Referanslar

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.