J'ai toujours utilisé GNU tar
. Cependant, toutes les dissortingbutions GNU / Linux que j'ai vues embarquent bsdtar
dans leurs référentiels. Je l'ai même vu installé par défaut dans certains, IIRC. Je sais avec certitude que Arch GNU / Linux l'exige en tant que partie de basedevel
(peut base
être de base
, mais je ne suis pas sûr), comme je l'ai vu dans PKGBUILDs.
Pourquoi voudriez-vous utiliser bsdtar
au lieu de GNU tar
? Quels sont les avantages?
Notez que je suis la personne qui a demandé Quelles sont les principales différences entre BSD et GNU / Linux userland? .
Le bsdtar
Ubuntu est en fait l'implémentation de tar libarchive
avec libarchive
; et cela devrait être différencié du bsdtar
classique. Certaines variantes BSD utilisent libarchive
pour leur implémentation tar, par exemple FreeBSD.
GNUtar
prend en charge les autres variantes de tar et la détection de compression automatique.
Comme la visualisation a collé le text de présentation d'Ubuntu, il y a quelques éléments spécifiques à libarchive
:
libarchive
est par définition une bibliothèque, et différente de bsdtar
classique et GNUtar
de cette façon. libarchive
ne peut pas lire certaines anciennes libarchive
obscures de GNU tar, le plus notable étant le encoding de certains en-têtes dans base64, de sorte que le file tar serait ASCII propre 7 bits (c'était le cas pour 1.13.6-1.13.11 et changé en 1.13. 12, ce code était seulement officiellement dans le goudron pendant 2 semaines) libarchive
de bsdtar
lira les files non-tar (zip, iso9660, cpio), mais pas bsdtar classique. Maintenant que nous sums libarchive
, cela revient surtout à ce qui est supporté par le bsdtar
classique.
Vous pouvez voir les pages de manuel vous-même ici:
Dans votre question initiale, vous avez demandé quels sont les avantages du bsdtar
classique, et je ne suis pas sûr qu'il y en ait vraiment. La seule fois que c'est vraiment important, c'est si vous essayez d'écrire des scripts shell qui doivent fonctionner sur tous les systèmes; vous devez vous assurer que ce que vous transmettez à tar
est réellement valide dans toutes les variantes.
GNUtar
, libarchive
de bsdtar
, bsdtar
classique, star
et tar
BusyBox
sont certainement les implémentations tar que vous rencontrerez le plus souvent, mais je suis certain qu'il y en a d'autres là-bas (QNX par exemple). libarchive
/ GNUtar
/ star
sont les plus GNUtar
fonctionnalités, mais à bien des égards ils ont longtime dévié des normes d'origine (peut-être pour le mieux).
De la description du package Ubuntu ( http://packages.ubuntu.com/de/lucid/bsdtar )
"Le programme bsdtar présente un certain nombre d'avantages par rapport aux implémentations tar antérieures:
Voici un avantage !!
Je vais aller dans 5 sujets ici (et aller bien loin du sujet, mais il couvrira ce que vous voulez aussi):
bsdtar gère les files épars mieux que le tar normal
* exemple: imaginez un file sparse de 20 tb (appelé biglun) avec 10 megs de données à travers le file sparsefile de 20 tb (biglun) … maintenant puisqu'il s'agit d'un file sparse, il ne prendra que 10 Mo sur le disque
comment faire un file clairsemé:
Fichier Sparse – comment le faire – le détecter – tout Les files Sparse sont comme des "lun" minces (si vous deviez l'utiliser pour un lun). "lun" épais serait autre histoire.
* return au sujet:
tarer le biglun, fera passer le goudron à travers tous les 10 megs avec tous les ~ 20tb pire des zéros répartis à travers le lun … cela prendra un certain time je présume. et le file tar sera assez gros. Aussi l'extraire (jamais fait un extrait d'un file tar d'un file clairsemé, mais il pourrait ne pas être joli – je pourrais avoir tort herE)
bsdtarring le biglun va juste traiter les 10 megs de données, et faire de petites métadonnées pour le ~ 20tb de zéros.
Avantage? Eh bien beaucoup d'entre eux, je viens d'écrire certains ci-dessus
Il ressemble à rsync vs cp
Personnellement, j'aime imaginer des files épars, comme des luns minces, et des files réguliers comme des luns épais …
Avec les filesystems tels que BTRFS , les files thin sont des files épars (le rendre tronqué, comme dans le wiki doc).
truncate -s <size in kilobytes> filename
conseil: sauvegarde avec bsdtar , copy avec cp
les LUN épais sont des files réguliers avec l'atsortingbut + C (+ C pour qu'il ne soit pas COW, copyr sur écriture, de sorte que toutes les écritures restnt fidèles à l'endroit où il est alloué et pas de nouvelles écritures pour ce file quand il y a des écrasements ou supprime – search COW et BTRFS ). Au lieu de rendre le file tronqué, faites-le avec "fallocate -l"
fallocate -l <size in kilobytes> filename chattr +C filename
tip: sauvegarde avec bsdtar ou tar, copy avec rsync ou cp
minces luns qui sont rares
truncate -s <size in kilobytes> filename
conseil: sauvegarde avec bsdtar , copy avec cp
les LUN épais sont des files réguliers avec l'atsortingbut + C (+ C pour qu'il ne soit pas COW, copyr sur écriture, de sorte que toutes les écritures restnt fidèles à l'endroit où il est alloué et pas de nouvelles écritures pour ce file quand il y a des écrasements ou supprime – search COW et BTRFS ). Au lieu de rendre le file tronqué, faites-le avec "fallocate -l"
touch filename fallocate -l <size in kilobytes> filename
tip: sauvegarde avec bsdtar ou tar, copy avec rsync ou cp
ARTICLE VMWARE ICI décrit paresseux vs avide zéro avec des files lun / files épais: https://communities.vmware.com/message/2199576
callbackez-vous épais et mince ne s'applique pas seulement aux luns, il peut également être sur les files, les filesystems zfs (partages / volumes / luns), et je suis sûr d'autres choses (il suffit de regarder zfs)
Ce qui suit est basé sur la lecture, pas sur l'expérience – je commence juste avec Freebsd, donc je n'ai presque aucune expérience réelle (je viens principalement de Linux). Je m'excuse (et je sollicite humblement la correction) si j'ai manqué quelque chose d'important et que ce que je dis ici, c'est des ordures …
De ma lecture des pages de manuel (plus récemment celle ref'd ci-dessus http://www.freebsd.org/cgi/man.cgi?query=tar&sektion=1 ) le tar de Freebsd manque le (-d, –diff , –compare). Ce n'est pas surprenant, car les auteurs de FreeBSD ne semblent pas avoir fourni quelque chose comme ça non plus.
Je ne sais pas avec certitude si le gnu tar incorporera toutes les métadonnées UFS comme le fait FreeBSD tar, et c'est un problème important. Mais à mon goût, je ne peux JAMAIS considérer un vidage pour être complété jusqu'à ce que j'aie stocké une sum MD5 du file de sortie, ET ALORS ai comparé le file de vidage aux données que je viens de supposer vidées. Divers problèmes peuvent conduire à ce que datatables stockées soient différentes de ce qui est sur le disque. (Pas seulement les changements de files, mais aussi les erreurs de disque, les erreurs de memory, les erreurs de machine, etc.).
À mon avis, cela fait de Gnu tar la seule option que j'ai trouvée jusqu'ici pour créer de véritables sauvegardes sur un système stock FreeBSD.
J'aimerais beaucoup aimer apprendre autrement, FWIW. Je préférerais utiliser les utilitaires natifs au less pour le clonage de partition et les sauvegardes de récupération matérielle. Mais si on ne peut pas vérifier l'exactitude d'une décharge, je ne vois pas l'intérêt d'en créer une.