HS: tar exclure un dossier a la racine mais pas sous dossier

Le
Jérémy Prego
Bonjour,

Je viens avec une petite question de NOOB sur tar ce matin. J'aimerai
faire quelque chose qui me parait simple en théorie mais ça me semble
plus compliqué en pratique.

en fait, j'aimerai archiver un dossier mais en excluant un sous dossier
mais seulement dans la racine. je m'explique

Pour l'exemple, le dossier s'appel toto. Dans toto il y a plein de sous
dossier dont un qui s'appel download. mais, il y a aussi un sous dossier
s'appelant archive, et qui contient aussi un dossier download.

Je précise que quand je fais mon tar, je suis dans ce dossier "toto".

à force de recherche, j'ai bien trouvé une commande tar qui me
conviendrait, mais seul souci, l'archive comporte un premier dossier "."
tar --exclude='./download' -zcpvf test.tar.gz .

j'ai bien essayé de remplacer le point de la fin par un * et d'adapter
mon exclude en conséquence, mais j'ai pas réussi a obtenir le résultat
voulu

du coup, j'aimerai mixer les deux. À savoir, avoir directement mes
dossier a l'ouverture de l'archive, et ne pas avoir le contenu du
premier dossier download.

merci pour l'aide,

Jerem
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
raphael.poitevin
Le #26516895
Jérémy Prego
tar --exclude='./download' -zcpvf test.tar.gz .
j'ai bien essayé de remplacer le point de la fin par un * et d'adapt er
mon exclude en conséquence, mais j'ai pas réussi a obtenir le r ésultat
voulu...
du coup, j'aimerai mixer les deux. À savoir, avoir directement mes
dossier a l'ouverture de l'archive, et ne pas avoir le contenu du
premier dossier download.

Et si tu fais :
tar --exclude='./download' -zcpvf test.tar.gz $(ls)
Pas testé, juste une suggestion.
--
Raphaël
Jérémy Prego
Le #26516897
Le 18/05/2019 à 10:05, Cyrille Bollu a écrit :
‘Comprend pas: c’est quoi le problème avec ta commande? Elle n’exclut pas le 1er dossier download, c’est ça?

le souci avec ma commande, c'est qu'à la création de l'archive, ça crée
un premier dossier "." donc je dois ouvrir ce dossier pour voir mes
fichiers.
Le 18 mai 2019 à 09:18, Jérémy Prego Bonjour,
Je viens avec une petite question de NOOB sur tar ce matin. J'aimerai
faire quelque chose qui me parait simple en théorie mais ça me semble
plus compliqué en pratique.
en fait, j'aimerai archiver un dossier mais en excluant un sous dossier
mais seulement dans la racine. je m'explique
Pour l'exemple, le dossier s'appel toto. Dans toto il y a plein de sous
dossier dont un qui s'appel download. mais, il y a aussi un sous dossier
s'appelant archive, et qui contient aussi un dossier download.
Je précise que quand je fais mon tar, je suis dans ce dossier "toto".
à force de recherche, j'ai bien trouvé une commande tar qui me
conviendrait, mais seul souci, l'archive comporte un premier dossier "."
tar --exclude='./download' -zcpvf test.tar.gz .
j'ai bien essayé de remplacer le point de la fin par un * et d'adapter
mon exclude en conséquence, mais j'ai pas réussi a obtenir le résultat
voulu...
du coup, j'aimerai mixer les deux. À savoir, avoir directement mes
dossier a l'ouverture de l'archive, et ne pas avoir le contenu du
premier dossier download.
merci pour l'aide,
Jerem
Jean-Michel OLTRA
Le #26516906
Bonjour,
Le samedi 18 mai 2019, Jérémy Prego a écrit...
le souci avec ma commande, c'est qu'à la création de l'archive, ça crée
un premier dossier "." donc je dois ouvrir ce dossier pour voir mes
fichiers.

Essaie en étant dans le répertoire au dessus de toto, puis :
tar -xzf toto.tar.gz -C toto --exclude ./downloads
tar -tvzf toto.tar.gz
mkdir tata
cd tata
tar -xzf ../toto.tar.gz
--
jm
Jérémy Prego
Le #26516944
Le 18/05/2019 à 11:38, Jean-Michel OLTRA a écrit :
Bonjour,
Le samedi 18 mai 2019, Jérémy Prego a écrit...
le souci avec ma commande, c'est qu'à la création de l'archive, ça crée
un premier dossier "." donc je dois ouvrir ce dossier pour voir mes
fichiers.

Essaie en étant dans le répertoire au dessus de toto, puis :
tar -xzf toto.tar.gz -C toto --exclude ./downloads
tar -tvzf toto.tar.gz
mkdir tata
cd tata
tar -xzf ../toto.tar.gz
hmmm, donc ça veut dire qu'on peut pas éviter ce "." a la création de l'archive directement ? c'est quand même embêtant ... en tout cas, merci pour vos réponses jusqu'ici.

Jerem
Jean-Michel OLTRA
Le #26516947
Bonjour,
Le dimanche 19 mai 2019, Jérémy Prego a écrit...

hmmm, donc ça veut dire qu'on peut pas éviter ce "." a la création de
l'archive directement ? c'est quand même embêtant ... en tout cas, merci
pour vos réponses jusqu'ici.

Quel "." ? Celui que tu vois lorsque tu fais le `tar -tv` ?
En quoi est ce embêtant ? Lorsque tu décompresses l'archive, tout ce fait
correctement, non ?
--
jm
Benoit B
Le #26516978
Bonjour,
Voici ma proposition nocturne ! ;)
tar --exclude='./download' -zcpvf test.tar.gz !(.)
Chez moi la sortie affiche :
archive/
archive/download/
download/
titi/
Et pas :
./
./archive/
./archive/download/
./titi/
C'est bien ça que tu veux ?
Bonne nuit,
Benoit
Le sam. 18 mai 2019 à 09:18, Jérémy Prego
Bonjour,
Je viens avec une petite question de NOOB sur tar ce matin. J'aimerai
faire quelque chose qui me parait simple en théorie mais ça me semble
plus compliqué en pratique.
en fait, j'aimerai archiver un dossier mais en excluant un sous dossier
mais seulement dans la racine. je m'explique
Pour l'exemple, le dossier s'appel toto. Dans toto il y a plein de sous
dossier dont un qui s'appel download. mais, il y a aussi un sous dossier
s'appelant archive, et qui contient aussi un dossier download.
Je précise que quand je fais mon tar, je suis dans ce dossier "toto" .
à force de recherche, j'ai bien trouvé une commande tar qui me
conviendrait, mais seul souci, l'archive comporte un premier dossier "."
tar --exclude='./download' -zcpvf test.tar.gz .
j'ai bien essayé de remplacer le point de la fin par un * et d'adapt er
mon exclude en conséquence, mais j'ai pas réussi a obtenir le r ésultat
voulu...
du coup, j'aimerai mixer les deux. À savoir, avoir directement mes
dossier a l'ouverture de l'archive, et ne pas avoir le contenu du
premier dossier download.
merci pour l'aide,
Jerem
Benoit B
Le #26516979
Oups je voulais écrire
tar -zcpvf test.tar.gz !(download)
Qui archivera :
archive/
archive/download/
titi/
et exclu le download du répertoire courent avec !()
Le sam. 18 mai 2019 à 09:18, Jérémy Prego
Bonjour,
Je viens avec une petite question de NOOB sur tar ce matin. J'aimerai
faire quelque chose qui me parait simple en théorie mais ça me semble
plus compliqué en pratique.
en fait, j'aimerai archiver un dossier mais en excluant un sous dossier
mais seulement dans la racine. je m'explique
Pour l'exemple, le dossier s'appel toto. Dans toto il y a plein de sous
dossier dont un qui s'appel download. mais, il y a aussi un sous dossier
s'appelant archive, et qui contient aussi un dossier download.
Je précise que quand je fais mon tar, je suis dans ce dossier "toto" .
à force de recherche, j'ai bien trouvé une commande tar qui me
conviendrait, mais seul souci, l'archive comporte un premier dossier "."
tar --exclude='./download' -zcpvf test.tar.gz .
j'ai bien essayé de remplacer le point de la fin par un * et d'adapt er
mon exclude en conséquence, mais j'ai pas réussi a obtenir le r ésultat
voulu...
du coup, j'aimerai mixer les deux. À savoir, avoir directement mes
dossier a l'ouverture de l'archive, et ne pas avoir le contenu du
premier dossier download.
merci pour l'aide,
Jerem
Benoit B
Le #26516980
Pour les détails d'exclusion, voir man bash :
If the extglob shell option is enabled using the shopt builtin, several
extended pattern matching operators are recognized. In the follow ing
description, a pattern-list is a list of one or more patterns separa ted
by a |. Composite patterns may be formed using one or more of the f ol‐
lowing sub-patterns:
?(pattern-list)
Matches zero or one occurrence of the given patterns
*(pattern-list)
Matches zero or more occurrences of the given patterns
+(pattern-list)
Matches one or more occurrences of the given patterns
@(pattern-list)
Matches one of the given patterns
!(pattern-list)
Matches anything except one of the given patterns
Par exemple si tu veux exclure download et titi
tar -zcpvf test.tar.gz !(download|titi)
Bonne nuit,
Le dim. 19 mai 2019 à 22:50, Benoit B
Oups je voulais écrire
tar -zcpvf test.tar.gz !(download)
Qui archivera :
archive/
archive/download/
titi/
et exclu le download du répertoire courent avec !()
Le sam. 18 mai 2019 à 09:18, Jérémy Prego
Bonjour,
Je viens avec une petite question de NOOB sur tar ce matin. J'aimerai
faire quelque chose qui me parait simple en théorie mais ça m e semble
plus compliqué en pratique.
en fait, j'aimerai archiver un dossier mais en excluant un sous dossier
mais seulement dans la racine. je m'explique
Pour l'exemple, le dossier s'appel toto. Dans toto il y a plein de sous
dossier dont un qui s'appel download. mais, il y a aussi un sous dossie r
s'appelant archive, et qui contient aussi un dossier download.
Je précise que quand je fais mon tar, je suis dans ce dossier "tot o".
à force de recherche, j'ai bien trouvé une commande tar qui m e
conviendrait, mais seul souci, l'archive comporte un premier dossier ". "
tar --exclude='./download' -zcpvf test.tar.gz .
j'ai bien essayé de remplacer le point de la fin par un * et d'ada pter
mon exclude en conséquence, mais j'ai pas réussi a obtenir le résultat
voulu...
du coup, j'aimerai mixer les deux. À savoir, avoir directement mes
dossier a l'ouverture de l'archive, et ne pas avoir le contenu du
premier dossier download.
merci pour l'aide,
Jerem
Publicité
Poster une réponse
Anonyme