Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 24/02/2010, à 13:35

Fuyusuke

[Résolu] Commande archiver plusieurs fichiers

Bonjour,

j'ai regardé dans la documentaion pour voir comment faire pour créer une archive.

Mais ce que j'aimerais, c'est archiver plusieurs fichiers, dans plusieurs archives.

Par exemple, j'ai un dossier "Test 01" et un autre "Test 02" et ainsi de suite. Et j'aimerais qu'en une ligne de commande, je me retrouve avec autant d'archive que de dossiers au départ, avec le nom 01.zip, 02.zip...

J'ai essayé ça, mais ça ne marche pas (ce que je me doutais) :

zip -r $1.zip "Dossier (\d{2})"

Je sais pas si c'est possible, si oui, comment faire ?

Ou bien en script genre en python qui permettrait de faire ça, n'importe en fait, tant que je peux archiver mes dossiers automatiquement sans les faire tous à la main.

Merci d'avance pour votre aide !

Dernière modification par Fuyusuke (Le 24/02/2010, à 20:32)

Hors ligne

#2 Le 24/02/2010, à 16:23

sputnick

Re : [Résolu] Commande archiver plusieurs fichiers

for i in */; do zip -r "$i.zip" "$i"; done

de tete ( donc pas teste, je suis dans Les  transports... )


On ne peut pas mettre d'array dans un string!
https://sputnick.fr/

Hors ligne

#3 Le 24/02/2010, à 16:32

credenhill

Re : [Résolu] Commande archiver plusieurs fichiers

hello
ls -d Test*|xargs -I{} zip -r "{}" "{}"

Hors ligne

#4 Le 24/02/2010, à 18:20

Fuyusuke

Re : [Résolu] Commande archiver plusieurs fichiers

Merci pour vos réponses !

Aurez-vous par contre, l'amabilité de m'expliquer un peu comment ça fonctionne ? Histoire que je comprenne ce que je fais smile

Sans vouloir être trop exigeant, merci !

EDIT :

C'est bon, j'ai réussi avec un petit script python. Merci pour votre aide !

# -*- coding:Utf-8 -*-

import os

a = 1
nb = 2
pref = "Test_"
nom = "Test "

while (a <= nb):
	if (a < 10):
		a = "0" + str(a)
	os.system("zip -r " + pref + a + ".zip \"" + nom + a + "\"")
	a = int(a)
	a = a + 1

Dernière modification par Fuyusuke (Le 24/02/2010, à 20:32)

Hors ligne

#5 Le 24/02/2010, à 22:28

sputnick

Re : [Résolu] Commande archiver plusieurs fichiers

Ah wé, faut au moins ça :þ
Prochain defi, faire un tar.gz en Haskel

Plus serieusement :
for i in */; do # pour tous les chemins qui finissent par un / ( les répertoires quoi ) faire ( un à un ):
zip -r "$i.zip" "$i" # zipper dans la variable.zip le répertoire en cours
done # fin

Dernière modification par sputnick (Le 24/02/2010, à 22:43)


On ne peut pas mettre d'array dans un string!
https://sputnick.fr/

Hors ligne