Est-il possible de créer un répertoire cible, similaire à mkdir -p
, où je peux définir un répertoire cible inexistant au sein de la commande tar et le goudron créera le répertoire pour moi?
Je sais que je peux rediriger la sortie vers un répertoire utilisant tar -C /target/dir
, mais cela ne fonctionne pas si le répertoire cible est inexistant.
mkdir -p /target/dir && tar -C /target/dir
tar -xvf bash.html_node.tar.gz --one-top-level
De la page man de la commande tar
--one-top-level[=DIR]
Extraire tous les fichiers dans [~ # ~] dir [~ # ~ ~ ~] ou, s'il est utilisé sans argument, dans un sous-répertoire nommé par le nom de base de l'archive (moins de suffixes de compression standard reconnaissables par
--auto-compress
).
----- test
tar zxvf ../aaa.tgz --one-top-level
aaa/
aaa/222
aaa/111
tree aaa
aaa/
├── 111
└── 222
// si le nom TGZ est identique à Root_Dir of Archive, aucun autre effet
mv ../aaa.tgz ../bbb.tgz
tar zxvf ../bbb.tgz --one-top-level
aaa/
aaa/222
aaa/111
tree bbb
bbb
└── aaa
├── 111
└── 222
// Si le nom TGZ non identique que root_dir d'archive, créez un DIR de niveau supérieur
Cela a fait plus de sens pour moi: mkdir -p /create/folder && tar -zxf haroopad-v0.13.0_x64.tar.gz -C /create/testfolder
mkdir
fait le dossier bien que je ne comprends pas tout à fait le -p
changer. &&
vous permet d'exécuter une deuxième commande. J'ai utilisé des commutateurs de goudron typiques mais à la fin -C
est utilisé pour changer de répertoires et extraire à cet endroit nécessaire.
référence: extrayez-les-fichiers-fichiers-contenus-in-archive-gz-to-nouvelle-annuaire-nommé-archive
Si vous ne connaissez pas les chemins pour créer ...
[.____] Obtenez les chemins nécessaires à partir du fichier tar, puis créez-les ...
for P in \`tar tvf tarfile.tar |tr -s [:space:] |cut -d' ' -f6\`; do
C=\`echo "${P: -1}"\` #get the last character
if [ $C = '/' ]; then
echo "Found directory: $P"
mkdir -p $P
fi
done