je souhaite utiliser la commande find pour rechercher tous les fichier log.* ,les compresser avec gzip et effacer les fichier non compressé de depart.
Je connais les commande genres find . -name "core" | xargs rm
Mais la je bloque .
Bein pourtant, c'est exactement pareil :
find . -name 'log.*' | xargs gzip
. Bon, en mieux :
find . -name 'log.*' -print0 | xargs -0 gzip
, ça évite les ennuis au cas où il y aurait du whitespace quelque part...
Lincoln B
Je viens de tester cette comande qui marche. find . -name "log.*"-exec gzip -c {} > toto.gz ; Mais le probleme est que je n'arrive pas a garder le meme nom pour le fichier .gz. La dans mon test je suis obligé de mettre toto.gz. C'est un peu con
"Lincoln B" a écrit dans le message de news: 4522348d$0$31929$
Salut a tous,
je souhaite utiliser la commande find pour rechercher tous les fichier log.* ,les compresser avec gzip et effacer les fichier non compressé de depart.
Je connais les commande genres find . -name "core" | xargs rm
Mais la je bloque .
Merci de votre aide
Je viens de tester cette comande qui marche.
find . -name "log.*"-exec gzip -c {} > toto.gz ;
Mais le probleme est que je n'arrive pas a garder le meme nom pour le
fichier .gz.
La dans mon test je suis obligé de mettre toto.gz.
C'est un peu con
"Lincoln B" <c-note@hotmail.fr> a écrit dans le message de news:
4522348d$0$31929$426a74cc@news.free.fr...
Salut a tous,
je souhaite utiliser la commande find pour rechercher tous les fichier
log.* ,les compresser avec gzip et effacer les fichier non compressé de
depart.
Je connais les commande genres find . -name "core" | xargs rm
Je viens de tester cette comande qui marche. find . -name "log.*"-exec gzip -c {} > toto.gz ; Mais le probleme est que je n'arrive pas a garder le meme nom pour le fichier .gz. La dans mon test je suis obligé de mettre toto.gz. C'est un peu con
"Lincoln B" a écrit dans le message de news: 4522348d$0$31929$
Salut a tous,
je souhaite utiliser la commande find pour rechercher tous les fichier log.* ,les compresser avec gzip et effacer les fichier non compressé de depart.
Je connais les commande genres find . -name "core" | xargs rm
Mais la je bloque .
Merci de votre aide
lhabert
"Lincoln B" :
Je viens de tester cette comande qui marche. find . -name "log.*"-exec gzip -c {} > toto.gz ;
(Je suppose que tu avais mis un espace avant le « -exec ».) Le problème avec ta commande, c'est que le shell exécute :
find . -name "log.*"-exec gzip -c {}
, et redirige sa sortie vers « toto.gz ». Si tu veux faire des redirections dans la commande lancée par le « -exec », il faut faire quelque chose comme :
find . -name "log.*" | xargs sh -c 'for f in "$@"; do gzip -c "$f" > "$f".gz; done' ploum
. Enfin en l'occurence, c'est de l'overkill, cf la solution que j'ai postée.
"Lincoln B" :
Je viens de tester cette comande qui marche.
find . -name "log.*"-exec gzip -c {} > toto.gz ;
(Je suppose que tu avais mis un espace avant le « -exec ».)
Le problème avec ta commande, c'est que le shell exécute :
find . -name "log.*"-exec gzip -c {}
, et redirige sa sortie vers « toto.gz ». Si tu veux faire des redirections
dans la commande lancée par le « -exec », il faut faire quelque chose
comme :
Je viens de tester cette comande qui marche. find . -name "log.*"-exec gzip -c {} > toto.gz ;
(Je suppose que tu avais mis un espace avant le « -exec ».) Le problème avec ta commande, c'est que le shell exécute :
find . -name "log.*"-exec gzip -c {}
, et redirige sa sortie vers « toto.gz ». Si tu veux faire des redirections dans la commande lancée par le « -exec », il faut faire quelque chose comme :