Saya selalu menggunakan GNU tar
. Namun, semua distribusi GNU / Linux yang pernah saya lihat dikirimkan bsdtar
dalam repositori mereka. Saya bahkan telah melihatnya diinstal secara default di beberapa, IIRC. Saya tahu pasti bahwa Arch GNU / Linux memerlukannya sebagai bagian dari basedevel
(mungkin base
, tapi saya tidak yakin), seperti yang saya lihat di PKGBUILDs.
Mengapa Anda ingin menggunakan bsdtar
bukannya GNU tar
? Apa kelebihannya?
Perhatikan bahwa saya adalah orang yang bertanya Apa perbedaan utama antara pengguna BSD dan GNU / Linux? .
Jawaban:
Ubuntu
bsdtar
sebenarnya adalah implementasi tar yang dibundel denganlibarchive
; dan itu harus dibedakan dari klasikbsdtar
. Beberapa varian BSD digunakanlibarchive
untuk implementasi tar mereka, misalnya FreeBSD.GNUtar
tidak mendukung varian tar lainnya dan deteksi kompresi otomatis.Ketika visualisasi menyisipkan uraian dari Ubuntu, ada beberapa hal di sana yang khusus untuk
libarchive
:libarchive
adalah definisi perpustakaan, dan berbeda dari klasikbsdtar
danGNUtar
dengan cara itu.libarchive
tidak dapat membaca beberapa variasi tar GNU lama yang tidak jelas, yang paling terkenal adalah pengkodean beberapa header di base64, sehingga file tar akan menjadi ASCII 7-bit yang bersih (ini merupakan kasus untuk 1.13.6-1.13.11 dan diubah pada 1.13.12 , kode itu hanya resmi tar selama 2 minggu)libarchive
'sbsdtar
akan membaca file non-tar (misalnya zip, iso9660, cpio), tapi bsdtar klasik tidak akan.Sekarang kita sudah
libarchive
keluar dari jalan, sebagian besar turun ke apa yang didukung dalam klasikbsdtar
.Anda dapat melihat sendiri halaman manual di sini:
Dalam pertanyaan awal Anda, Anda bertanya apa kelebihan klasik itu
bsdtar
, dan saya tidak yakin benar-benar ada. Satu-satunya waktu yang paling penting adalah jika Anda mencoba menulis skrip shell yang perlu bekerja pada semua sistem; Anda perlu memastikan apa yang Anda sampaikantar
sebenarnya valid di semua varian.GNUtar
,libarchive
'sbsdtar
, klasikbsdtar
,star
danBusyBox
' star
tentu saja implementasi tar yang akan Anda temui sebagian besar waktu, tapi saya yakin ada orang lain di luar sana (QNX awal misalnya).libarchive
/GNUtar
/star
adalah yang paling penuh fitur, tetapi dalam banyak hal mereka telah lama menyimpang dari standar aslinya (mungkin menjadi lebih baik).sumber
BSDTAR vs TAR plus banyak lagi
Ini satu manfaatnya !!
Saya akan masuk ke 5 topik di sini (dan pergi jauh dari topik, tetapi akan mencakup apa yang Anda inginkan juga):
bsdtar menangani file jarang lebih baik daripada tar biasa
* contoh: bayangkan file sparse 20 tb (disebut biglun) dengan 10 MB data di seluruh sparsefile 20 tb (biglun) ... sekarang karena ini adalah file jarang, hanya perlu 10 MB pada drive.
Cara membuat file jarang:
File Jarang - cara membuatnya - mendeteksinya - semuanya File Jarang adalah seperti roti "tipis" (jika Anda menggunakannya untuk roti). roti "tebal" akan menjadi cerita yang berbeda.
* kembali ke topik:
menaiki biglun akan membuat tar melewati semua 10 MB bersama dengan semua ~ 20tb lebih buruk dari nol yang tersebar di seluruh lun ... itu akan memakan waktu yang saya duga, dan file tar akan cukup besar. Juga - mengekstraksi - Saya belum pernah melakukan ekstrak file tar dari file jarang, tetapi mungkin tidak cantik; Saya mungkin salah di sini.
bsdtarring biglun hanya akan memproses 10 MB data, dan membuat metadata kecil untuk ~ 20tb nol.
Manfaat? Yah banyak dari mereka; Saya baru saja menulis beberapa di atas.
Ini mirip dengan rsync vs cp
Secara pribadi, saya suka membayangkan file jarang seperti roti tipis, dan file biasa seperti roti tebal ...
Topik selanjutnya adalah BTRFS thin vs thick luns:
Dengan filesystem seperti BTRFS , lun yang tipis adalah file yang jarang (buat dengan truncate, seperti pada dokumen wiki).
tip: cadangan dengan bsdtar , salin dengan cp
lun tebal adalah file biasa dengan atribut + C (+ C sehingga membuatnya tidak ada SAP, salin di tulis, sehingga semua menulis pada dasarnya tetap berada di tempat itu dialokasikan, dan tidak ada tulisan baru terjadi untuk file itu ketika ada overwrite atau menghapus - penelitian KK dan btrfs ). Alih-alih membuat file dengan truncate, buatlah dengan "fallocate -l"
tip: cadangan dengan bsdtar atau tar, salin dengan rsync atau cp
Topik berikutnya adalah EXT thin vs luns thick:
roti tipis yang jarang
tip: cadangan dengan bsdtar , salin dengan cp
lun tebal adalah file biasa dengan atribut + C (+ C sehingga membuatnya tidak ada SAP, salin di tulis, sehingga semua dasarnya menulis tetap di mana dialokasikan, dan tidak ada menulis baru terjadi untuk file itu ketika ada overwrite atau menghapus - penelitian KK dan btrfs ). Alih-alih membuat file dengan truncate, buatlah dengan "fallocate -l"
tip: cadangan dengan bsdtar atau tar, salin dengan rsync atau cp
apa file tebal vs tipis
VMWARE ARTICLE HERE menjelaskan malas vs bersemangat nol dengan lun / file tebal: https://communities.vmware.com/message/2199576
tip
ingat tebal dan tipis tidak hanya berlaku untuk luns, itu juga bisa di file, zfs filesystems (share / volume / luns), dan saya yakin hal-hal lain (lihat saja zfs).
sumber
Dari deskripsi paket Ubuntu ( http://packages.ubuntu.com/de/lucid/bsdtar )
"Program bsdtar memiliki sejumlah keunggulan dibandingkan implementasi tar sebelumnya:
sumber
Berikut ini didasarkan pada membaca, bukan pengalaman - Saya baru memulai dengan Freebsd jadi saya hampir tidak memiliki pengalaman nyata dengannya (saya berasal dari kebanyakan Linux). Saya minta maaf (dan dengan rendah hati meminta koreksi) jika saya melewatkan sesuatu yang penting dan apa yang saya katakan di sini adalah sampah ...
Dari pembacaan saya pada halaman buku panduan (paling baru satu referensi di atas http://www.freebsd.org/cgi/man.cgi?query=tar&sektion=1 ) tar Freebsd tidak memiliki (-d, --diff , --compare) kemampuan. Ini tidak mengherankan, karena penulis Freebsd dump / restore tampaknya tidak menyediakan yang seperti ini juga.
Saya tidak tahu pasti apakah Gnu tar akan menggabungkan semua metadata UFS seperti yang dikatakan Freebsd tar lakukan, dan ini merupakan masalah penting. Tetapi untuk selera saya, saya TIDAK PERNAH mempertimbangkan dump untuk diselesaikan sampai saya telah menyimpan jumlah MD5 dari file output, DAN KEMUDIAN membandingkan file dump dengan data yang baru saja saya duga dibuang. Berbagai masalah dapat menyebabkan data yang dibuang berbeda dari apa yang ada di disk. (Bukan hanya perubahan file, tetapi kesalahan disk, kesalahan memori, kesalahan mesin, dan sebagainya. Semua yang sebenarnya terjadi pada saya.)
Menurut pendapat saya sendiri, ini menjadikan Gnu tar satu-satunya pilihan yang sejauh ini saya temukan untuk membuat backup yang benar pada sistem Freebsd saham.
Saya ingin sekali belajar sebaliknya, FWIW. Saya lebih suka menggunakan utilitas asli setidaknya untuk kloning partisi dan cadangan pemulihan sulit. Tetapi jika seseorang tidak dapat memverifikasi kebenaran dump, saya tidak melihat gunanya repot untuk membuatnya.
sumber
bsdtar dapat membaca dan tar anggota yang datang dari arsip lain menggunakan
@archive
sintaksGNU tar memiliki
--delete
pilihan - meskipun baru-baru, saya menemukan bahwa bahwa itu dapat merusak arsip.sumber