Saya ingin menyalin satu set file dari direktori A ke direktori B, dengan peringatan bahwa jika file dalam direktori A identik dengan file dalam direktori B, file itu tidak boleh disalin (dan dengan demikian waktu modifikasi tidak boleh diperbarui). Apakah ada cara untuk melakukannya dengan alat yang ada, tanpa menulis skrip saya sendiri untuk melakukannya?
Untuk menguraikan sedikit kasus penggunaan saya: Saya membuat autogenerasi banyak .cfile dalam direktori sementara (dengan metode yang harus menghasilkan semuanya tanpa syarat), dan ketika saya membuat ulang, saya ingin menyalin hanya yang telah berubah menjadi direktori sumber aktual, membiarkan yang tidak berubah tidak tersentuh (dengan waktu kreasi lama mereka) sehingga makeakan tahu bahwa itu tidak perlu mengkompilasi ulang mereka. (Namun, tidak semua file yang dihasilkan adalah .cfile, jadi saya perlu melakukan perbandingan biner daripada perbandingan teks.)
(Sebagai catatan: Ini muncul dari pertanyaan yang saya ajukan di https://stackoverflow.com/questions/8981552/speeding-up-file-comparions-with-cmp-on-cygwin/8981762#8981762 , di mana saya mencoba untuk mempercepat file skrip yang saya gunakan untuk melakukan operasi ini, tetapi terpikir oleh saya bahwa saya benar-benar harus bertanya apakah ada cara yang lebih baik untuk melakukan ini daripada menulis skrip saya sendiri - terutama karena cara sederhana melakukan ini dalam shell skrip akan memanggil sesuatu seperti cmppada setiap pasangan file, dan memulai semua proses itu terlalu lama.)
rsync -avncatau jauh-jauh rsync --archive --verbose --dry-run --checksum.
diff -qr dirA dirBuntuk melihat file apa yang unikdirAdandirB, secara repektif.