En exécutant la commande, le fichier se trouve dans /home/user/Documents/home/user/Documents/
.
tar -xzvf /tmp/file.tar.gz -C /home/user/Documents/
Cela se produit parce que vous avez utilisé des chemins absolus lors de la création de l'archive et que vous utilisez -C
pour exécuter chdir(2)
avant la désarchivage, vous obtiendrez les chemins absolus à partir de l'endroit où vous avez chdir(2)
-.
Maintenant, vous avez deux options si vous voulez utiliser -C
:
Utilisez des chemins relatifs lors de la création de l'archive, puis vous pourrez utiliser -C
comme vous l'avez utilisé lors de la désarchivage:
tar -xzvf /tmp/file.tar.gz -C /home/user/Documents/
choisissez la destination avec soin pour vous assurer qu'elle n'a pas la possibilité de remplacer tout ce qui existe.
Remplacez le répertoire par /
et utilisez les chemins absolus lors de l'archivage. Choisissez bien sûr le chemin chdir(2)
dans ce cas car il pourrait remplacer tout fichier existant:
tar -xzvf /tmp/file.tar.gz -C /
sur la base de votre exemple, cela mettra le (s) fichier (s) dans /home/user/Documents/
.