Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications > Shell
Shell Vos questions sur l'utilisation des commandes shell
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 15/01/2010, 17h00   #1
Membre du Club
 
Inscription : février 2005
Messages : 146
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : février 2005
Messages : 146
Points : 66
Points : 66
Par défaut garder la source d'un gzip / {} dans find

Bonjour,

Grâce à un post trouvé ici-même, j'ai pu trouver une solution mais j'aimerais savoir s'il n'y a pas plus joli.

Donc la réponse est :
Code :
find . -name '*.foo' -exec bash -c "gzip -c '{}' >> '{}'.gz" \;
Tout d'abord, pourquoi n'y a-t-il pas d'option pour gzip permettant de garder le fichier source. Là, l'astuce que j'ai trouvé, c'est donc de balancer le flux gzip sur stdout et d'enregistrer ça dans un fichier qui porte le même nom.gz.
C'est moche.

Ensuite, pourquoi est-on obligé de passer par une écriture aussi lourde pour pouvoir réutiliser {} ?

Le tout fait un truc bien moche qui permet de gzipper mes .foo sans toucher à ces derniers.

Merci.

Dernière modification par al1_24 ; 15/01/2010 à 23h44.
talvins est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/01/2010, 00h52   #2
Membre chevronné
 
Inscription : septembre 2007
Messages : 685
Détails du profil
Informations personnelles :
Âge : 48
Localisation : Suisse

Informations forums :
Inscription : septembre 2007
Messages : 685
Points : 723
Points : 723
J'ai trouvé ceci, est-ce que c'est mieux?
Code :
find . -name "*.foo" -exec tar czf {}.gz {} \;
__________________
Un problème bien posé est déjà résolu (H. Bergson).
jmelyn est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/01/2010, 16h12   #3
Modérateur
 
Avatar de gangsoleil
 
R&D en systemes informatiques bas niveau Unix/Linux
Inscription : mai 2004
Messages : 5 129
Détails du profil
Informations personnelles :
Âge : 31
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : R&D en systemes informatiques bas niveau Unix/Linux

Informations forums :
Inscription : mai 2004
Messages : 5 129
Points : 8 749
Points : 8 749
Bonjour,

Citation:
Envoyé par jmelyn Voir le message
J'ai trouvé ceci, est-ce que c'est mieux?
Code :
find . -name "*.foo" -exec tar czf {}.gz {} \;
Attention, ca ne fait pas la meme chose. Dans ce cas-ci, tu cherches tous les fichiers *.foo, et tu crees une archive tar compressée pour chacun d'entre eux.

Dans la ligne de commande du premier post, le but est de compresser tous les fichiers *.foo dans un seul fichier compressé.



Sinon, talvins, tu as un probleme de comprehension de gzip. Tu viens probablement du monde windows, dans lequel est allegrement confondu archive et compression - erreur classique due aux utilitaires de compression sur cet OS.

Mettre plusieurs fichiers dans un meme fichier, ca s'appelle de l'archivage. L'utilitaire le plus connu pour ce faire est tar.
Compresser un fichier pour qu'il prenne moins de place s'appelle de la compression, et ca ne se fait que sur un seul fichier. Les utilitaires les plus connus sont gzip, bzip2, ...

Il se trouve que sous Windows, tous les utilitaires qui font de la compression font en realite aussi de l'archivage, mais de maniere transparente pour l'utilisateur.

Dans ton cas, tu dois explicitement creer une archive, et eventuellement la compresser si besoin.

Exemple en utilisant l'utiltaire de compression bzip2, que l'on appelle dans tar avec l'option j :
Code :
tar cfj archive.tar.bz2 `find . -name "*.foo"`
__________________
Modérateur "C", "Informatique Générale & Hardware" et "Unix"
Les règles du forum
gangsoleil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/01/2010, 15h05   #4
Membre chevronné
 
Inscription : septembre 2007
Messages : 685
Détails du profil
Informations personnelles :
Âge : 48
Localisation : Suisse

Informations forums :
Inscription : septembre 2007
Messages : 685
Points : 723
Points : 723
Oops, merci gangsoleil!
__________________
Un problème bien posé est déjà résolu (H. Bergson).
jmelyn est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/03/2010, 19h34   #5
Membre du Club
 
Inscription : février 2005
Messages : 146
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : février 2005
Messages : 146
Points : 66
Points : 66
Niet.

Je viens du monde Amiga puis linux (slackware) puis Windows pour le poste de travail et Debian pour mes serveurs.

Je ne veux pas faire d'archive mais bien un gzip. Le but est de gzipper toute une série de fichiers dans des gzip distincts.

C'est vraiment par curiosité puisque je n'ai plus besoin de cela (et que la ligne que j'ai indiquée fonctionne très bien).
talvins est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +1. Il est actuellement 19h16.


 
 
 
 
Partenaires

Hébergement Web