Bash içindeki iki yerel klasörü senkronize et


23

Ana dizinde büyük bir klasör "X" ve bunun bir flash sürücüdeki modası geçmiş kopyası - Y rm Y; cp X Yvar.

Yanıtlar:


26

Rsync için önceki cevaplarda belirtilenden çok daha fazla özellik var . Onlara kendin bakmalısın:

man rsync

Ama senin sorunun için şunu önerebilirim:

rsync -a --delete X Y

Bu şekilde, alıcı (Y), X’de olmayan tüm dosyaları siler. Yine de doğru yaptığınızdan emin olun. Kök yanlış kullanıldığında sisteminizi kolayca öldürebilir ... :)


1
Bu konuda çok dikkatli olmanız gerektiğini kabul edin. Herhangi bir değişiklik yapmadan ne olacağını görmek için komuta --dry-run eklemeyi deneyin. Eğer iyi giderse, --dry-run
squarecandy

Biraz zaman aldı küçük bir düzeltme ulaşmak için: rsync -a --delete X/ Y. X'ten sonraki küçük eğik çizgi benim için tasarlandığı gibi çalışmasını sağladı, bu yüzden başkalarına da yardımcı olabilir. Burada açıklandı
Shovalt

15

Rsync'e (1) bir göz atın . Tam olarak ne istersen onu yapmayı amaçlıyor.

rsync -av X Y

Kendi protokolü veya ssh'si ile uzaktan kopyalamayı destekler, ancak yerel olarak da kullanılabilir.

İstediğiniz tam davranışa bağlı olarak, --updateseçeneği de geçmek isteyebilirsiniz . Bu, rsync'e hedefte zaten var olan ve kaynaktaki dosyalardan daha yeni olan dosyaların üzerine yazmamasını söyleyecektir.

Ekstra dosyaları kaldırmak istiyorsanız (yani Y'de bulunan, ancak X'te olmayan dosyalar) --deleteseçeneği ekleyebilirsiniz .


Ancak, X'te kaldırıldığından daha fazla dosya kaldırılmayacak rm Y; cp X Y.

X'den kaldırılan dosyaları kaldırmak için --delete seçeneğini kullanın.
csonuryilmaz

0

Rsnyc kullanmayı deneyin, muhtemelen şu komutla:

rsync -avzu /home/x /y

-u = değiştirilmişse hedefteki bir dosyanın üzerine yazma


Ancak, X'te kaldırıldığından daha fazla dosya kaldırılmayacak rm Y; cp X Y.

0

Sanırım -u (güncelleme) seçeneğinde aradığınız bazı işlevsellikler aslında bu seçenekte var:

"--ignore-exist" - alıcıda bulunan güncelleme dosyalarını atla

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.