Saya mencoba menyalin direktori besar dari satu drive ke drive lain. Saya keliru logout sebelum selesai jadi hanya sekitar 80% dari file yang disalin. Apakah ada jauh untuk menyalin file yang tersisa tanpa memulai dari awal?
23
Aku akan mencoba,
rsync -a /from/file /dest/file
Anda dapat menggunakan pilihan lain seperti --append
, -P (--partial --progress)
. Lihat man rsync untuk info lebih lanjut.
Atau jika Anda menggunakan cp
lalu gunakan cp -u
.
dari man cp
:
-u, --update
copy only when the SOURCE file is newer than the destination file or when the destination file is missing.
cp -u
mungkin tidak peduli, karena hanya memeriksa stempel waktu, bukan ukuran ... Jadi, Anda harus ketouch
sumber file terlebih dahulu jika Anda harus menggunakannya . (Atau cukup gunakanrsync
.)Untuk transfer file parsial,
cp
mungkin bukan yang Anda butuhkan.Saya sarankan menggunakan
rsync
sebagai gantinya. Bahkan ketika transfer gagal, Anda cukup menjalankan kembali perintah di lain waktu, dan itu hanya akan menyalin file yang hilang.Contoh:
(akan menyalin
from/
keto/
direktori)Karena
rsync
sinkronisasi dan pemeriksaan setelah setiap transfer, memastikan file telah disalin dengan benar adalah sepele.Perangkat swich
-aPEmivvz
adalah pilihan masuk standar saya , setiap kali menyalin file melalui jaringan atau drive eksternal, termasuk perangkat plug-in, seperti SD-Cards, dll.Ini adalah switch yang saya gunakan hampir selalu:
-a
: "arsip", termasuk-rlptgo
(rekursif, symlink sebagai symlink, izin, waktu, grup, pemilik)-P
: "sebagian kemajuan" menunjukkan bilah kemajuan yang bagus untuk setiap file-E
: "executability" mempertahankan apakah dapat dieksekusi atau tidak-m
: "noempty" memangkas direktori kosong-i
: "ringkasan" cetak ringkasan perubahan untuk semua pembaruan-vv
: "lebih banyak kata"-z
: "kompresi"sumber
Apa yang mungkin Anda inginkan daripada
cp
dalam hal ini adalahrsync
.Hanya menyalin secara rekursif satu struktur direktori ke lokasi baru:
sumber
Anda seharusnya tidak menggunakannya
cp
untuk ini. Seperti yang dinyatakan orang lain, itu bukan alat yang tepat untuk pekerjaan itu. Alat yang benar akan tergantung pada tujuan Anda.Jika Anda hanya ingin salinan langsung:
rsync /source /destination
dengan beberapa tingkat bendera. Lihat jawaban lain untuk beberapa contoh yang sangat bagus.Jika Anda ingin memiliki pembaruan dua arah
unison
adalah cara untuk pergi. Rsync tidak bekerja dengan sangat baik pada resolusi konflik dengan sinkronisasi dua arah. Khusus menghapus. Jadi, Anda ingin salinan bi-directional menyalaunison
Jika Anda ingin cadangan dan file berbasis teks, maka Anda dapat mencoba menggunakan
git
. Git dapat dijalankan secara lokal, tidak perlu untuk "server". Bahkan, server git hanyalah metode berbagi file. Anda benar-benar dapat memiliki git repo di drive cadangan dan "dorong" ke sana. Sekali lagi ini hanya berfungsi jika file berbasis teks dan Anda mencoba untuk mendapatkan cadangan satu arah.Sekali lagi jika Anda mencari cadangan (dan bukan hanya satu kali) maka lihat deja-dupe, BackIntime, atau opsi serupa. Mereka mengambil snapshot data pada suatu titik waktu. Mereka semua menjalankan rsync di bawah tenda.
sumber
Anda juga dapat menyalin semua file lagi, meminta konfirmasi untuk setiap overwrite, lalu secara otomatis menjawab tidak untuk pertanyaan:
(Anda mungkin menggunakan lebih banyak opsi, seperti
-r
, jadi tambahkan saja seperticp -pri /source /dest
...)sumber
Gunakan perintah
rsync
dengan opsi berikut:sumber