Saya perlu membuat cadangan direktori yang cukup besar, tetapi saya dibatasi oleh ukuran file individual. Saya ingin dasarnya membuat tar.(gz|bz2)
arsip yang dibagi menjadi arsip maksimum 200MB. Clonezilla melakukan sesuatu yang mirip dengan ini dengan memecah cadangan gambar dengan nama seperti:
sda1.backup.tar.gz.aa
sda1.backup.tar.gz.ab
sda1.backup.tar.gz.ac
Apakah ada cara saya bisa melakukan ini dalam satu perintah? Saya mengerti cara menggunakan split
perintah, tetapi saya ingin tidak harus membuat satu arsip raksasa, kemudian membaginya menjadi arsip yang lebih kecil, karena ini akan menggandakan ruang disk yang saya perlukan untuk awalnya membuat arsip.
Jawaban:
Anda bisa mem-pipe tar ke perintah split:
Pada beberapa sistem * nix (seperti OS X) Anda mungkin mendapatkan kesalahan berikut:
Dalam hal ini coba ini (perhatikan
-b 200m
):Jika Anda mencoba membagi file agar sesuai dengan drive yang diformat FAT32, gunakan batas byte 4294967295. Misalnya:
sumber
cat sda1.backup.tar.gz.* | tar xzvf -
melakukan pekerjaan itu?split
secara default menetapkan nama file sehingga ketika diurutkan berdasarkan LOCALE (yang dilakukan dengan shell globbing) akan berada dalam urutan yang benar.tar czf ...
tanpav
dan gabungkan dengancat backup.tar.gz.* | tar tar xzf -
tanpav
. Saya tidak melihat manfaat dari keluaran verbose di siniv
.tar cvzf - Xcode.app/ | split -b 2000m - /Volumes/PH/xcode/xcode.tgz
(digunakan daricd /Applications/
) Terima kasih banyak :)Di macOS,
split
perintahnya bekerja sedikit berbeda:sumber
Sekadar menambahkan: Karena ukuran file maksimum yang diizinkan dalam vfat / fat32 adalah 2 ^ 32 minus 1 (4294967295 bytes), perintah split dengan ukuran file maksimum yang diizinkan pada sistem file tersebut adalah:
sumber
Anda akan memerlukan skrip untuk otomatisasi memindahkan file pseudo-tape.tar ke nama baru:
sumber
-M --tape-length
. Namun, jawaban ini mengabaikan permintaan OP untuk solusi yang menggunakan kompresi gzip atau bzip2.tar
tetapi lebih tentang klon tar yang disebutgtar
(GNU tar). Klon tar ini mendukung untuk membuat arsip multi volume tetapi dengan probabilitas nyata tidak dapat / tidak mau mengekstraksi dari arsip multi volume tersebut karena mengklaim bahwa volume tindak lanjut bukan bagian kelanjutan yang tepat.