web-dev-qa-db-fra.com

Extraire les fichiers contenus dans archive.tar.gz dans un nouveau répertoire nommé archive

J'ai un répertoire contenant environ 800 archives .tgz, chacune contenant environ 10 fichiers. En effet, je veux convertir chaque archive dans un répertoire du même nom. Existe-t-il une simple commande d'une ligne pour cela, ou devrais-je écrire un script?

16
si_2012

Je pense que vous aurez besoin de script cela. Vous pouvez spécifier le répertoire dans lequel l'extrait est placé à l'aide de l'option tar -C. 

Le script ci-dessous suppose que les répertoires n'existent pas et doivent être créés. Si les répertoires existent, le script fonctionnera toujours - le mkdir échouera simplement.

tar -xvzf archive.tar.gx -C archive_dir

par exemple.

for a in *.tar.gz
do
    a_dir=`expr $a : '\(.*\).tar.gz'`
    mkdir $a_dir 2>/dev/null
    tar -xvzf $a -C $a_dir
done
18
suspectus

Créez un dossier dans lequel vous voulez extraire comme ceci mkdir archive Et transmettez le nom du dossier avec -C lors de l'extraction, tar -xvf archive.Zip -C archive

0
Shirish Singh