it-swarm-tr.com

Linux robokopiye eşdeğer mi?

Çok komik, Linux komut satırı araçlarının Windows'lardan çok daha üstün olduğu birçok yol var, ancak buna eşdeğer bir şey bulamadım robocopy . Robocopy cp 'den çok daha yönlüdür ve ne istediğimi Linux araçlarında nasıl yapacağımı çözemiyorum.

Özel bir kullanım durumu, çoğunlukla benzer dosyalara sahip iki dizinim var, ancak bir tanesinin daha yeni kaynak dosyaları, bir tanesinin sahip olmadığı içerik dosyaları ve bir web sitesi için daha yeni kaynak dosyaları var. Dosyaları ilk dizinden eskisine kopyalamak, yeni içerik dosyaları ekler ve hedef dizindeki daha yeni dosyaların üzerine yazmak istemiyorum.

Bunu Linux'ta yarım saatliğine nasıl yapacağımı anlamaya çalıştım, muhtemelen istediğim şeyi yapmak için bash betiği veya bir şeyler öğrenmek zorunda kalmaya karar verdim ve sonra sadece robokopi kullanabileceğimin farkına vardım. Benim de başka gereksinimlerim vardı. Temel olarak bir Python (Django) web sitesini bir SVN deposundan Git deposuna dönüştürüyordum ve SVN'de kabul edilmemiş değişiklikler yapmadığımdan emin olmak istedim. Ancak, şartlı olarak .svn dizinlerini ve .pyc derlenmiş Python dosyalarını dışlamak istedim. Aşağıdaki robocopy komutu tam olarak istediğimi yapıyor:

robocopy source destination /XO /E /XD .svn /XF *.pyc

Linux'ta Robocopy'ye eşdeğer var mı? rsync dosyasına kısaca baktım, ancak klasörleri senkronize etmeden önce bir rsync sunucusu kurmam gerekecek gibi görünüyordu.

31
Ibrahim

Görünüşe göre rsync kesinlikle peşinde olduğun şey. Dosyaları bir makineden diğerine kopyalamak için bir 'rsync sunucusu' kurmanıza gerek yoktur. Rsync, çoğu linux kutusunun önceden etkinleştirmiş olduğu (el ile devre dışı bırakılmadıysa) dosyaların SFTP (SSH Dosya Aktarımı) üzerinden kopyalanmasını destekler.

Daha fazla bilgi için bakınız Lifehacker'ın Dosyaları rsync'li sistemlerde yansıtın :

Verilerinizi yedeklemek, dosyaları güvenli bir şekilde dağıtmak veya çalışma belgelerinizi ofisten eve, yerel ağınızdaki bilgisayarlar arasında veya bilgisayarınızdan web sunucunuza yansıtmak isteyip istemediğinizi rsync halleder. Bugün, Mac ile PC arasındaki klasörleri komut satırında güvenli bir bağlantı üzerinden yansıtmak için rsync kullanacağız.

Rsync ücretsizdir (konuşmada olduğu gibi) ve çapraz platformdur; yani işletim sistemleri (Windows/Cygwin, Mac OS, Linux) arasında dosyaları senkronize eder; ssh üzerinde çalışır, bu yüzden şifreli ve güvenlidir; FTP'den farklı olarak artan , yani sadece kısımlar değiştirildi dosya aktarıldı, bütün dosyaları değil , bu Speedy Gonzalez gibi yapar; ve komut satırı olması komut dosyası çizilebilir ve kolayca otomatikleştirilir.

38
Josh Hunt

rsync, dosyaları robocopy gibi aynı makinedeki başka bir dizine kopyalar. İşte robocopy komutunuza eşdeğer olan rsync komutu:

rsync -auv --exclude '.svn' --exclude '*.pyc' source destination

Bu, kaynağı tekrar tekrar hedefe kopyalar ve eski dosyaları ve '.svn' ve '* .pyc' dizinlerini/dosyalarını hariç tutar.

15
Sean Staats