Salin file baru saja - apakah ini mungkin? Pada dasarnya ingin menggabungkan dua folder

14

Saya memiliki folder di Drive 1 bernama Music, dan itu 100GB. Saya memiliki folder di Drive 2 yang disebut Music, dan berukuran 116GB. Ini versi terbaru. Bagaimana cara menyalin folder Musik dari Drive 2 ke Drive 1 tanpa harus menulis ulang setiap file?

dallen
sumber
Versi OS X mana yang Anda gunakan?
Nix
1
Saya menggunakan 10.7.4. Ketika saya menyalin folder dari satu drive ke drive lain, saya ditanya apakah saya ingin mengganti. Tidak ada opsi penggabungan.
dallen

Jawaban:

5

Opsi penggabungan hanya akan muncul jika Anda menyalin (alih-alih memindahkan) folder. Pastikan Anda menahan optionsambil menyeret folder baru ke lokasi folder lama. Atau, menggunakan + cuntuk menyalin folder baru dan + vuntuk menempelkan folder lama akan memberi Anda opsi untuk menggabungkan file.

Nix
sumber
Ini sepertinya masih menulis di atas file yang tidak perlu ditulis ulang. Menggunakan rsyncbukannya
BRogers
Bahkan jika opsi untuk menggabungkan tersedia, terkadang tidak berfungsi (hanya melaporkan kesalahan dan tidak melakukan apa-apa) - terutama dalam kasus folder besar seperti dalam kasus Anda. Itu alasan lain mengapa Anda harus menggunakan rsync.
Andrzej Martyna
24

Ini adalah kasus penggunaan klasik untuk rsync:

rsync -av /source-path/source-dir /destination-path

rsync hanya akan menyalin file yang baru dan diubah ke lokasi baru.

Penting untuk memahami bagaimana garis miring pada fungsi argumen sumber. Jika ada trailing slash maka isi / source-path / source-dir akan disalin ke path-tujuan . Jika tidak ada trailing slash maka source-dir itu sendiri akan disalin ke tujuan dan isinya akan menjadi level lain di hierarki tujuan.

Jadi jika Anda ingin mereplikasi satu jalur ke yang lain, sertakan garis miring sebagai berikut:

rsync -av /sourcepath/sourcedir/ /duplicatpath/sourcedir/
John D.
sumber
1
Tangkapan hebat! Dan jika Anda melakukan ini dari banyak drive (atau di mana saja di komputer Anda) dan tidak ingin mengetik direktori, Anda cukup menyeret drive (usb eksternal, atau kapsul waktu) atau hanya direktori tertentu dan menambahkannya ke perintah untuk Anda. Cukup seret lokasi target ke terminal
BRogers
Man, terima kasih banyak untuk menyarankan tebasan belakang. Saya telah menghabiskan waktu memikirkan mengapa rsync -av ./foo/bar / vol1 / foo / bar menyalin semua file yang ada. Tebasan berdarah lol !!!
sming
4

MEMPERBARUI

Pertama instal coreutils terlebih dahulu. Lari brew install coreutils. Jika Anda belum brewmenginstal ... beralih kembali ke windows!

Periksa apakah cp --versionversi keluaran cp (GNU coreutils) 8. ^^

Kemudian Anda akan memiliki cpversi yang benar dan -ubendera akan berfungsi.


Periksa cpperintah. Gunakan man cpdan baca opsi. Anda dapat melakukan sesuatu seperti:

cp -r -u ~/source ~/destination

-R, -r , --recursive: salin direktori secara rekursif
-u , --update: salin hanya ketika file SUMBER lebih baru dari file tujuan atau ketika file tujuan hilang
-p sama seperti --preserve = mode, kepemilikan , cap waktu
-v --verbose: jelaskan apa yang sedang dilakukan

Jadi, jika Anda ingin menyalin file dari folder Downloads / music Anda untuk mengatakan folder Music / new Anda, Anda akan melakukan sesuatu sebagai: Ini akan menggabungkan konten dari dua folder ini dan jika ada dua file dengan nama dan jalur yang sama itu akan menjaga yang terbaru berdasarkan cap waktu.
cp -ruvp ~/Downloads/music/* ~/Music/new/

drew7721
sumber
Apakah Anda yakin opsi -u berfungsi dengan perintah cp di OSX? Saya menerima pesan "cp: opsi ilegal - u" di Sierra. Sepertinya tidak semua perintah sama dengan di Linux.
OMA
Coba perintah cp --help dan lihat apakah opsi tersebut tersedia. Atau periksa versi cp - dan pastikan sudah terbaru. Saya menggunakan: cp (GNU coreutils) 8.27
drew7721
Sayangnya, -u bukan flag yang valid untuk cp pada OS X. Akan sangat nyaman untuk memilikinya!
Per Quested Aronsson
Sayangnya jawaban ini salah.
William Cerniuk
gunakan brew install coreutilsuntuk mendapatkan cpversi yang benar .
drew7721
0

Tidak yakin mengapa tombol Lion Gabung standar tidak muncul untuk saya. Tapi saya akhirnya menggunakan ditto. Ditemukan di sini: https://superuser.com/a/221599/102789

dallen
sumber
1
HATI-HATI! Selain tidak menyimpan file yang lebih baru, selalu ditimpa tujuan dengan sumber. Jika file sumber lebih lama, itu akan menghapus file baru dan ganti dengan file yang lebih lama
FrancescoMM
itu benar - peringatan yang sangat penting dari FrancescoMM, gunakan rsync
Andrzej Martyna