J'utilise cette commande sur une archive 5 Go
tar -zxvf archive.tar.gz /folder/in/archive
est-ce la bonne façon de procéder? Cela semble prendre une éternité sans sortie de ligne de commande ...
tar
stocke les chemins relatifs par défaut . GNU tar le dit même si vous essayez de stocker un chemin absolu:
tar -cf foo.tar /home/foo
tar: Removing leading `/' from member names
Si vous avez besoin d'extraire un dossier particulier, regardez ce qu'il y a dans le fichier tar:
tar -tvf foo.tar
Et notez le nom de fichier exact. Dans le cas de mon foo.tar
fichier, je pourrais extraire /home/foo/bar
en disant:
tar -xvf foo.tar home/foo/bar # Note: no leading slash
Donc non, la façon dont vous avez posté n'est pas (nécessairement) la bonne façon de le faire. Vous devez omettre la barre oblique principale. Si vous souhaitez simuler des chemins absolus, faites cd /
d'abord et assurez-vous que vous êtes le superutilisateur. En outre, cela fait la même chose:
tar -C / -xvf foo.tar home/foo/bar # -C is the ‘change directory’ option
Il existe de très bonnes raisons évidentes pour lesquelles tar
convertit les chemins en chemins relatifs. L'une est la possibilité de restaurer une archive dans des endroits autres que sa source d'origine. L'autre est la sécurité. Vous pouvez extraire une archive, vous attendre à ce que ses fichiers apparaissent dans votre répertoire de travail actuel, et remplacer à la place les fichiers système (ou votre propre travail) ailleurs par erreur.
Remarque: si vous utilisez le -P
option, tar
will archive les chemins absolus. Il est donc toujours avantageux de vérifier le contenu des grandes archives avant de les extraire.