tar -tf filename.tar
folder1/file
folder1/name
[...]
Je voudrais extraire le fichier et le nom du dossier2 . Est-ce que cela peut être fait en une seule ligne?
tar -tf filename.tar
folder1/file
folder1/name
[...]
Je voudrais extraire le fichier et le nom du dossier2 . Est-ce que cela peut être fait en une seule ligne?
Réponses:
Utilisez -Cet --strip-components(Voir man tar).
mkdir FOLDER
# for remote tar file
curl -L ’remote_tar_file' | tar -xz - -C FOLDER --strip-components=1
# for local tar file
tar -xzf FILENAME -C FOLDER --strip-components=1
L' -Cindicateur suppose qu'un répertoire est déjà en place afin que le contenu du fichier tar puisse y être développé. d'où le mkdir FOLDER.
Le --strip-componentsdrapeau est utilisé lorsqu'un fichier tar se développerait naturellement dans un dossier, disons, comme github où il donne des exemples dans un repo-name-masterdossier. Bien sûr, vous n'auriez pas besoin du dossier de premier niveau généré ici, donc --strip-componentsréglé sur 1supprimerait automatiquement ce premier dossier pour vous. Plus le nombre est élevé, plus les dossiers imbriqués sont supprimés.
Vous pouvez également utiliser l' --transformoption pour un peu plus de flexibilité. Il accepte toute opération de remplacement de sed.
Par exemple, voici comment extraire une archive tar Linux dans un nouveau répertoire afin que je puisse appliquer un patch:
tar -xjf linux-2.6.38.tar.bz2 --transform 's/linux-2.6.38/linux-2.6.38.1/'
man tar. Je n'ai pas repéré--strip-components. belle