it-swarm.asia

Linux setara dengan robocopy?

Agak lucu, ada banyak cara di mana alat baris perintah Linux jauh lebih unggul daripada yang Windows, tetapi satu hal yang saya belum menemukan yang setara adalah robocopy . Robocopy jauh lebih fleksibel daripada cp, dan saya tidak tahu bagaimana melakukan apa yang saya inginkan dengan alat-alat Linux.

Kasus penggunaan khusus adalah bahwa saya memiliki dua direktori dengan sebagian besar file yang mirip, tetapi satu memiliki file sumber yang lebih baru dan satu memiliki file konten yang tidak dimiliki direktori lain, dan mungkin file sumber yang lebih baru (untuk situs web). Saya ingin menyalin file dari direktori terakhir ke yang pertama, menambahkan file konten baru dan semacamnya, tetapi tidak menimpa file yang lebih baru di direktori tujuan.

Saya mencoba mencari tahu bagaimana melakukan ini di Linux selama mungkin setengah jam, memutuskan bahwa saya mungkin harus belajar bash scripting atau sesuatu untuk melakukan apa yang saya inginkan, dan kemudian saya menyadari bahwa saya bisa menggunakan robocopy. Saya juga punya beberapa persyaratan lain. Saya pada dasarnya mengonversi situs web Python (Django) dari repositori SVN ke repositori Git, dan saya ingin memastikan bahwa saya tidak memiliki perubahan yang tidak dikomit di SVN. Namun, saya ingin mengecualikan direktori .svn dan .pyc dikompilasi file Python. Perintah robocopy berikut melakukan apa yang saya inginkan:

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

Apakah ada yang setara dengan Robocopy di Linux? Saya melihat rsync secara singkat, tetapi sepertinya saya harus menyiapkan server rsync sebelum mencoba menyinkronkan folder.

31
Ibrahim

Kedengarannya seperti rsync jelas apa yang Anda cari. Anda tidak perlu mengatur 'server rsync' untuk menyalin file dari satu mesin ke komputer lain. Rsync mendukung penyalinan file melalui SFTP (SSH File Transfer) yang sebagian besar kotak linux sudah aktifkan (jika tidak dinonaktifkan secara manual).

Lihat Lifehacker Mirror file di seluruh sistem dengan rsync untuk detail lebih lanjut:

Apakah Anda ingin membuat cadangan data Anda, mendistribusikan file dengan aman atau mirror dokumen kerja Anda melalui internet dari kantor ke rumah, antara komputer di jaringan lokal Anda, atau dari komputer Anda ke server web Anda, rsync dapat menyelesaikan pekerjaan. Hari ini kita akan menggunakan rsync untuk mirror folder antara Mac dan PC melalui koneksi aman di baris perintah.

Rsync gratis (seperti dalam ucapan) dan lintas platform, yang berarti sinkronisasi file antara sistem operasi (Windows/Cygwin, Mac OS, Linux); ini berfungsi lebih dari ssh sehingga terenkripsi dan aman; tidak seperti FTP itu incremental , jadi hanya bagian dari diubah file ditransfer, bukan seluruh file , yang membuatnya seperti Speedy Gonzalez; dan fakta bahwa itu adalah command line membuatnya bisa script dan mudah otomatis.

38
Josh Hunt

rsync akan menyalin file dari satu direktori ke direktori lain di mesin yang sama seperti robocopy. Ini adalah perintah rsync yang setara dengan perintah robocopy Anda:

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

Ini secara rekursif akan menyalin sumber ke tujuan dan mengecualikan file yang lebih lama serta direktori/file '.svn' dan '* .pyc'.

15
Sean Staats