Zawsze korzystałem z GNU tar
. Jednak wszystkie dystrybucje GNU / Linux, które widziałem, są dostarczane bsdtar
w swoich repozytoriach. Widziałem go nawet instalowanego domyślnie w niektórych, IIRC. Wiem na pewno, że Arch GNU / Linux wymaga tego w ramach basedevel
(być może base
, ale nie jestem pewien), tak jak to widziałem w PKGBUILD.
Dlaczego chcesz używać bsdtar
zamiast GNU tar
? Jakie są zalety?
Zauważ, że jestem osobą, która zapytała Jakie są główne różnice między BSD a obszarem użytkownika GNU / Linux? .
Odpowiedzi:
Ubuntu
bsdtar
jest tak naprawdę pakietem instalacyjnym tarlibarchive
; i należy to odróżnić od klasycznegobsdtar
. Niektóre warianty BSD używająlibarchive
do implementacji tar, np. FreeBSD.GNUtar
obsługuje inne warianty tar i automatyczne wykrywanie kompresji.W miarę wklejania się wizualizacji w Ubuntu pojawiło się kilka rzeczy, które są specyficzne dla
libarchive
:libarchive
jest z definicji biblioteką i różni się zarówno od klasycznej, jakbsdtar
iGNUtar
pod tym względem.libarchive
nie może odczytać niektórych starszych niejasnych odmian tar GNU, najbardziej zauważalne było kodowanie niektórych nagłówków w base64, tak że plik tar miałby 7-bitowy czysty ASCII (tak było w przypadku 1.13.6-1.13.11 i zmieniony w 1.13.12 , ten kod był oficjalnie zapisany w tar przez 2 tygodnie)libarchive
„sbsdtar
odczyta pliki non-tar (np zip, iso9660, cpio), ale klasyczne bsdtar nie będzie.Teraz, gdy udało nam się
libarchive
zejść z drogi, sprowadza się to głównie do tego, co jest obsługiwane w klasycebsdtar
.Tutaj możesz zobaczyć strony podręcznika:
W swoim pierwotnym pytaniu zapytałeś, jakie są zalety tego, co klasyczne
bsdtar
, i nie jestem pewien, czy tak naprawdę są. Jedyne, co naprawdę ma znaczenie, to próby pisania skryptów powłoki, które muszą działać na wszystkich systemach; musisz upewnić się, że to, co przekazujesz,tar
jest ważne we wszystkich wariantach.GNUtar
,libarchive
„Sbsdtar
, klasycznebsdtar
,star
aBusyBox
” star
są z pewnością implementacje smoły, że będziesz prowadzone w większość czasu, ale jestem pewien, że są inni tam (wcześnie QNX na przykład).libarchive
/GNUtar
/star
mają najwięcej funkcji, ale pod wieloma względami od dawna odbiegały od oryginalnych standardów (być może na lepsze).źródło
BSDTAR vs TAR plus wiele więcej
Oto jedna korzyść !!
Przejdę do 5 tematów tutaj (i odejdę od tematu, ale obejmie to, czego chcesz):
bsdtar pliki uchwyty rzadki lepiej niż regularne tar
* przykład: wyobraź sobie plik rzadki o pojemności 20 TB (zwany biglun) z 10 megabajtami danych w pliku rzadkich plików o wielkości 20 TB (biglun) ... teraz, ponieważ jest to rzadki plik, zajmuje on tylko 10 megabajtów na dysku.
Jak zrobić rzadki plik:
Plik rzadki - jak to zrobić - wykryj go - wszystko Pliki rzadkie są jak „cienkie” lun (jeśli miałbyś go użyć do lun). „grubi” lunowie byliby inną historią.
* powrót do tematu:
tarowanie biglun sprawi, że smoła przejdzie przez wszystkie 10 megabajtów wraz ze wszystkimi o 20tb gorszymi zerami rozłożonymi na lun ... to zajmie trochę czasu, jak sądzę, a plik tar będzie dość duży. Ponadto - rozpakowywanie go - nigdy nie robiłem ekstrakcji pliku tar pliku rzadkiego, ale może nie być ładny; Mogę się tutaj mylić.
bsdtarring biglun przetworzy tylko 10 megabajtów danych i utworzy małe metadane dla ~ 20tb zer.
Zasiłek? Cóż, wiele z nich; Właśnie napisałem kilka powyżej.
Jest podobny do rsync vs cp
Osobiście lubię sobie wyobrażać rzadkie pliki, takie jak cienkie luns, i zwykłe pliki, takie jak grube luns ...
Następny temat to cienkie i grube lunty BTRFS :
W systemach plików, takich jak BTRFS , cienkie programy są rzadkimi plikami (należy je obcinać, jak w dokumencie wiki).
wskazówka: kopia zapasowa za pomocą bsdtar , kopia za pomocą cp
grube wiersze są zwykłymi plikami z atrybutem + C (+ C, dzięki czemu nie ma COW, kopiuj przy zapisie, tak że wszystkie zapisy zasadniczo trzymają się tego, do czego są przydzielone, i nie ma nowych zapisów dla tego pliku, gdy są nadpisania lub usuwa - badaj COW i BTRFS ). Zamiast tworzyć plik za pomocą obcinania, ustaw go za pomocą „fallocate -l”
wskazówka: wykonaj kopię zapasową za pomocą bsdtar lub tar, skopiuj za pomocą rsync lub cp
Następny temat to EXT cienki vs gruby luns:
cienkie lunety, które są rzadkie
wskazówka: kopia zapasowa za pomocą bsdtar , kopia za pomocą cp
grube wiersze są zwykłymi plikami z atrybutem + C (+ C, dzięki czemu nie ma COW, kopiuj przy zapisie, tak że wszystkie zapisy zasadniczo trzymają się miejsca, do którego są przydzielone, i nie ma nowych zapisów dla tego pliku, gdy są nadpisania lub usuwa - badaj COW i BTRFS ). Zamiast tworzyć plik za pomocą obcinania, ustaw go za pomocą „fallocate -l”
wskazówka: wykonaj kopię zapasową za pomocą bsdtar lub tar, skopiuj za pomocą rsync lub cp
co to jest plik gruby kontra cienki
ARTYKUŁ VMWARE TUTAJ opisuje leniwe vs chętne zero z grubymi luns / plikami: https://communities.vmware.com/message/2199576
Wskazówka
pamiętaj, że gruby i cienki nie dotyczy tylko LUNSów, może także dotyczyć plików, systemów plików ZFS (udziały / woluminy / Luns) i jestem pewien, że inne rzeczy (tylko spójrz na ZFS).
źródło
Z opisu pakietu Ubuntu ( http://packages.ubuntu.com/de/lucid/bsdtar )
„Program bsdtar ma wiele zalet w porównaniu z poprzednimi implementacjami tar:
źródło
Poniższe informacje oparte są na czytaniu, a nie na doświadczeniu - dopiero zaczynam od Freebsd, więc nie mam z nim prawie żadnego doświadczenia (pochodzę głównie z Linuksa). Przepraszam (i pokornie zabiegam o korektę), jeśli coś przeoczyłem, a to, co tu mówię, to śmiecie ...
Z mojego przeczytania stron podręcznika (ostatnio tego, do którego odwołano powyżej http://www.freebsd.org/cgi/man.cgi?query=tar&sektion=1 ) tarowi Freebsd brakuje (-d, --diff , --compare). Nie jest to zaskakujące, ponieważ autorzy zrzutu / przywracania Freebsd również nie zapewnili czegoś takiego.
Nie wiem na pewno, czy tar Gnu będzie zawierać wszystkie metadane UFS, jak mówi się, że tar Freebsd, i jest to ważna kwestia. Ale według mojego smaku NIGDY nie mogę uznać zrzutu za zakończony, dopóki nie zapisam sumy MD5 pliku wyjściowego, A NASTĘPNIE porównuję plik zrzutu z danymi, które rzekomo zrzuciłem. Różne problemy mogą prowadzić do tego, że zrzucone dane różnią się od danych na dysku. (Nie tylko zmiany plików, ale także błędy dysku, błędy pamięci, błędy komputera itd. Wszystkie z nich faktycznie mi się przydarzyły.)
Moim zdaniem powoduje to, że Tar Gnu jest jedyną dostępną do tej pory opcją tworzenia prawdziwych kopii zapasowych na standardowym systemie Freebsd.
Bardzo chciałbym nauczyć się inaczej, FWIW. Wolę używać rodzimych narzędzi przynajmniej do klonowania partycji i tworzenia kopii zapasowych na twardym dysku. Ale jeśli nie można zweryfikować poprawności zrzutu, nie ma sensu zawracać sobie głowy jego tworzeniem.
źródło
bsdtar może czytać i tarować członków pochodzących z innych archiwów przy użyciu
@archive
składniGNU tar ma taką
--delete
opcję - choć ostatnio odkryłem, że może to uszkodzić archiwum.źródło