GNU/Linux >> Tutoriels Linux >  >> Linux

Comment puis-je extraire des fichiers sans structure de dossiers à l'aide de tar

Basé sur @ford la réponse. Celui-ci va l'extraire dans le dossier my_dirname. Afin que nous puissions effacer correctement les dossiers vides sans affecter les fichiers actuellement existants.

tar xzf images.tgz --transform='s/.*\///' -C my_dirname
find my_dirname -type d -empty -delete

C'est presque possible avec tar seul, en utilisant l'indicateur --transform, sauf qu'il n'y a aucun moyen de supprimer les répertoires restants pour autant que je sache.

Cela aplatira l'intégralité de l'archive :

tar xzf images.tgz --transform='s/.*\///'

La sortie sera

folder1/
folder2/
folder3/
img.gif
img2.gif
img3.gif

Vous devrez alors supprimer les répertoires avec une autre commande, malheureusement.


Vérifiez la version tar, par exemple

$ tar --version

Si la version est >= que tar-1.14.90 utilisez --strip-components

tar xvzf web.dirs.tar.gz -C /srv/www --strip-components 2

sinon, utilisez --strip-path

tar xvzf web.dirs.tar.gz -C /srv/www --strip-path 2

Vous pouvez utiliser les --strip-components option de goudron.

 --strip-components count
         (x mode only) Remove the specified number of leading path ele-
         ments.  Pathnames with fewer elements will be silently skipped.
         Note that the pathname is edited after checking inclusion/exclu-
         sion patterns but before security checks.

Je crée un fichier tar avec une structure similaire à la vôtre :

$tar -tf tarfolder.tar
tarfolder/
tarfolder/file.a
tarfolder/file.b

$ls -la file.*
ls: file.*: No such file or directory

Puis extrait en faisant :

$tar -xf tarfolder.tar --strip-components 1
$ls -la file.*
-rw-r--r--  1 ericgorr  wheel  0 Jan 12 12:33 file.a
-rw-r--r--  1 ericgorr  wheel  0 Jan 12 12:33 file.b

Linux
  1. Comment tar (compresser) des fichiers, en excluant certains fichiers ou répertoires

  2. Comment extraire ou décompresser le fichier tar.xz sous Linux

  3. Comment compresser et extraire des fichiers et des répertoires sous Linux à l'aide de gzip et bzip2

  4. Comment fusionner deux fichiers avec AWK ?

  5. Extraire des fichiers spécifiques dans une archive tar à l'aide d'un caractère générique

Comment extraire (décompresser) le fichier tar.xz

Tout sur les fichiers tar et comment tar, décompresser des fichiers sous Linux à l'aide du terminal

Comment extraire le fichier Tar.xz sur la ligne de commande Linux

Comment compresser et extraire des fichiers à l'aide du gestionnaire de fichiers

Comment déplacer des fichiers vers un autre dossier à l'aide du gestionnaire de fichiers

Comment convertir des fichiers en différents formats sans utiliser de logiciel