web-dev-qa-db-fra.com

Compresser un dossier (tar) sans son répertoire contenant dans le nom du dossier

J'essaie de compresser un dossier avec la commande tar.

Lorsque j'essaie de le compresser, cela fonctionne bien. Le problème est avec le nom du fichier.

Chemin source:

/data/file/

Chemin de destination:

/data/repo/temp/file.tar.gz

tar zcvf $srcpath $destinationpath

J'exécute la commande à partir d'un dossier différent et, lors de l'extraction du dossier, j'obtiens tous les sous-répertoires au lieu du dossier seul.

20
Seetha Raman

Le moyen le plus simple de le faire est de commencer par accéder au répertoire:

cd /path/to/containing/folder && tar -zcvf tarfile.tar.gz foldername_tocompress

Pour que le répertoire du dossier (contenant) devienne le répertoire racine de votre fichier compressé.

Un peu plus avancé utilise l'option -C:

tar -zcvf tarfile.tar.gz -C /path/to/foldername_tocompress .

Cela crée un fichier tar.gz dans le répertoire (de travail) en cours, contenant tous les fichiers/dossiers au sein de foldername_tocompress (attention au point, indiquant que tous les fichiers/dossiers doivent être inclus).

47
Jacob Vlijm