Commande zip via un script bash
Fermé
pcsystemd
Messages postés
702
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
6 novembre 2024
-
Modifié le 9 nov. 2021 à 15:42
jee pee Messages postés 40454 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 17 novembre 2024 - 9 nov. 2021 à 16:59
jee pee Messages postés 40454 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 17 novembre 2024 - 9 nov. 2021 à 16:59
A voir également:
- Bash zip
- Télécharger 7-zip - Télécharger - Compression & Décompression
- Décompresser fichier zip - Guide
- Win zip - Télécharger - Compression & Décompression
- Express zip gratuit - Télécharger - Compression & Décompression
- Zip repair - Télécharger - Compression & Décompression
5 réponses
jee pee
Messages postés
40454
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
17 novembre 2024
9 418
8 nov. 2021 à 18:08
8 nov. 2021 à 18:08
Salut,
Si PWD n'est pas renseigné, le fichier zip devient le mot de passe et le répertoire le fichier zip, mais il n'y a alors rien à mettre dans le zip
Puis la commande zip serait mieux après la boucle (après done) pour ne s'executer qu'un fois, pas à chaque fichier.
Si PWD n'est pas renseigné, le fichier zip devient le mot de passe et le répertoire le fichier zip, mais il n'y a alors rien à mettre dans le zip
Puis la commande zip serait mieux après la boucle (après done) pour ne s'executer qu'un fois, pas à chaque fichier.
jee pee
Messages postés
40454
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
17 novembre 2024
9 418
Modifié le 9 nov. 2021 à 15:58
Modifié le 9 nov. 2021 à 15:58
Il y avait longtemps que je n'avais pas ouvert une VM linux.
Tes 2 scripts sont bien différents :-/ et franchement mettre en mot de passe du .zip le répertoire courant où s’exécute le script ($PWD), c'est à la fois bizarre et risqué pour le retrouver.
Pour ton second script ta logique m'échappe car tu devrais utiliser 3 répertoires de base, celui où sont les fichiers d'origine, celui où ils sont déplacés et les dumps,
donc je ne comprends pas ce que tu fais dans ta première boucle.
pour la seconde pour boucler sur les répertoires tu pourrais faire :
Tes 2 scripts sont bien différents :-/ et franchement mettre en mot de passe du .zip le répertoire courant où s’exécute le script ($PWD), c'est à la fois bizarre et risqué pour le retrouver.
Pour ton second script ta logique m'échappe car tu devrais utiliser 3 répertoires de base, celui où sont les fichiers d'origine, celui où ils sont déplacés et les dumps,
/home/user/rep
/home/user/depl
/home/user/dumps
donc je ne comprends pas ce que tu fais dans ta première boucle.
pour la seconde pour boucler sur les répertoires tu pourrais faire :
for i in ${DIRLOCAL}/${DIRMV}/*/ do zip -r -P $PWD "${i%/}.zip" "$i" done
pcsystemd
Messages postés
702
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
6 novembre 2024
23
Modifié le 9 nov. 2021 à 15:43
Modifié le 9 nov. 2021 à 15:43
Bon finalement il faut que je compresse plusieurs répertoires donc je passe par une second boucle qui fonctionne MAIS ..
PS
PWD est une variable d'environnement et elle est bien set.
Le truc c'est qu'il me compresse tout dans une seule archive
Hors je souhaiterais une archive de chaque répertoire et non une seule archive qui contient ces répertoires avec le path complet! Donc je souhaiterais :
Je pense que c'est dans ma commande zip qu'il y a un truc que j'ai pas compris.
Une idée?
PS
PWD est une variable d'environnement et elle est bien set.
DIRLOCAL="/home/user/rep" DATE=`date '+%Y%m%d'` DIRMV="dumps" for file in `find ${DIRLOCAL} -type d -name '*.rep' ` do mv $file ${DIRMV} done for i in ${DIRLOCAL}/${DIRMV}/ do zip -r -P $PWD "${i%/}.zip" "$i" done
Le truc c'est qu'il me compresse tout dans une seule archive
dumps.zipqui contient l'arborescence suivante :
/home/user/rep/dumps/repertoire1
repertoire2
repertoire3
Hors je souhaiterais une archive de chaque répertoire et non une seule archive qui contient ces répertoires avec le path complet! Donc je souhaiterais :
repertoire1.zip
repertoire2.zip
repertoire3.zip
Je pense que c'est dans ma commande zip qu'il y a un truc que j'ai pas compris.
Une idée?
mamiemando
Messages postés
33363
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
16 novembre 2024
7 801
Modifié le 9 nov. 2021 à 15:54
Modifié le 9 nov. 2021 à 15:54
Bonjour,
Quelques petites remarques en complément de ce que dit jeepee :
Bonne chance
Quelques petites remarques en complément de ce que dit jeepee :
- Tu devrais éviter d'utiliser le nom
PWD
qui correspond normalement à la variable d'environnement qui stocke le chemin du dossier courant (pour "print working directory", et qui d'ailleurs correspond au résultat de la commandepwd
) ; c'est un peu confusant et tu pourrais par exemples la nommerPASSWORD
. - Plutôt que d'utiliser
zip
, tu pourrais utiliser la commandetar
, plus communément utilisée sous linux (e.g.tar cvzf fichier1 fichier2 fichier3 archive.tgz
). C'est un format supporté sous windows également (par exemple avec des logiciels de compression comme 7zip). - Pour protéger ton archive, il serait plus adéquat d'utiliser par exemple
gpg
. Il existe différentes utilisations (avec une clé GPG, avec un mot de passe), personnellement je pense qu'avec un mot de passe c'est mieux (plus sûr et plus transparent une fois configuré). Tu peux par exemple te baser sur ce tutoriel. L'intérêt est que la plupart des explorateurs de fichiers modernes (konqueror, dolphin, nautilus) proposent des intégrations GPG. Note qu'en plus GPG a d'autres cas d'utilisation (notamment pour signer et/ou chiffrer un email).
Bonne chance
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
pcsystemd
Messages postés
702
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
6 novembre 2024
23
9 nov. 2021 à 16:53
9 nov. 2021 à 16:53
Merci.
Alors c'est mieux j'ai effectivement désormais un
Exemple :
Lorqu'on décompresse
Alors que ce que je souhaiterais, c'est lorsqu'on décompresse
Alors c'est mieux j'ai effectivement désormais un
fichier.zippour chaque répertoire mais l'archive une fois décompresser contient toujours tout le path
Exemple :
repertoire1.zip
Lorqu'on décompresse
repertoire1.zipon a
/home/user/rep/dumps/repertoire1
Alors que ce que je souhaiterais, c'est lorsqu'on décompresse
repertoire1.zipon est uniquement
repertoire1
jee pee
Messages postés
40454
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
17 novembre 2024
9 418
9 nov. 2021 à 16:59
9 nov. 2021 à 16:59
il faut examiner les paramètres de la commande unzip, ou ceux de zip, ou encore dans la boucle de creation du zip ne pas utiliser un chemin complet mais se positionner dans le répertoire concerné et utiliser un chemin relatif (.)
Modifié le 8 nov. 2021 à 18:34
A force d avoir la tête dans le guidon!
Je teste demain matin.