Bonjour,
J'ai un repertoire qui contient des fichiers en tout genre.
Je veux n'en garder que les fichiers PHP, HTML et CSS.
La recherche sera basée sur l'extension du fichier.
Ce que j'ai voulu faire c'est chercher tous les fichiers dont le nom ne
contient ni html, ni htm, ni php, ni css et les supprimer.
Mon problème c'est que je ne sais pas comment faire de négation dans la
recherche de fichiers. Une fois la négation faisable, je saurais faire,
avec -exec la suppression qu'il faut.
J'ai parcouru rapidement le man et quelques documents sur internet, mais
je n'arive à rien meme apres quelques tentatives de tatonnement...
Auriez-vous une piste?
Voici ma version de find:
mihamina@localhost:~/ja_genista$ find --version
GNU find version 4.2.31
Built using GNU gnulib version 2007-02-24
Features enabled: D_TYPE O_NOFOLLOW(enabled) LEAF_OPTIMISATION
--
Huile Essentielle de Camphre http://www.huile-camphre.fr
Infogerance http://www.infogerance.us
(Serveurs, Postes de travail, Développement logiciel)
J'ai un repertoire qui contient des fichiers en tout genre. Je veux n'en garder que les fichiers PHP, HTML et CSS. La recherche sera basée sur l'extension du fichier. Ce que j'ai voulu faire c'est chercher tous les fichiers dont le nom ne contient ni html, ni htm, ni php, ni css et les supprimer.
~ $ find --version « find » de GNU version 4.2.28 Options activées: D_TYPE O_NOFOLLOW(enabled) LEAF_OPTIMISATION
~ $ find bac_a_sable/ -type f -not -iregex 'x.*.(css|html?|php)$'
-- Jacques L'helgoualc'h
Le 13-03-2008, Mihamina Rakotomandimby a écrit :
Bonjour,
bonjour.
J'ai un repertoire qui contient des fichiers en tout genre.
Je veux n'en garder que les fichiers PHP, HTML et CSS.
La recherche sera basée sur l'extension du fichier.
Ce que j'ai voulu faire c'est chercher tous les fichiers dont le nom ne
contient ni html, ni htm, ni php, ni css et les supprimer.
~ $ find --version
« find » de GNU version 4.2.28
Options activées: D_TYPE O_NOFOLLOW(enabled) LEAF_OPTIMISATION
~ $ find bac_a_sable/ -type f -not -iregex 'x.*.(css|html?|php)$'
J'ai un repertoire qui contient des fichiers en tout genre. Je veux n'en garder que les fichiers PHP, HTML et CSS. La recherche sera basée sur l'extension du fichier. Ce que j'ai voulu faire c'est chercher tous les fichiers dont le nom ne contient ni html, ni htm, ni php, ni css et les supprimer.
~ $ find --version « find » de GNU version 4.2.28 Options activées: D_TYPE O_NOFOLLOW(enabled) LEAF_OPTIMISATION
~ $ find bac_a_sable/ -type f -not -iregex 'x.*.(css|html?|php)$'
-- Jacques L'helgoualc'h
Jacques L'helgoualc'h
Le 13-03-2008, Mihamina Rakotomandimby a écrit :
Bonjour,
bonjour.
J'ai un repertoire qui contient des fichiers en tout genre. Je veux n'en garder que les fichiers PHP, HTML et CSS. La recherche sera basée sur l'extension du fichier. Ce que j'ai voulu faire c'est chercher tous les fichiers dont le nom ne contient ni html, ni htm, ni php, ni css et les supprimer.
~ $ find --version « find » de GNU version 4.2.28 Options activées: D_TYPE O_NOFOLLOW(enabled) LEAF_OPTIMISATION
~ $ find bac_a_sable/ -type f -not -iregex '.*.(css|html?|php)$'
-- Jacques L'helgoualc'h
Le 13-03-2008, Mihamina Rakotomandimby a écrit :
Bonjour,
bonjour.
J'ai un repertoire qui contient des fichiers en tout genre.
Je veux n'en garder que les fichiers PHP, HTML et CSS.
La recherche sera basée sur l'extension du fichier.
Ce que j'ai voulu faire c'est chercher tous les fichiers dont le nom ne
contient ni html, ni htm, ni php, ni css et les supprimer.
~ $ find --version
« find » de GNU version 4.2.28
Options activées: D_TYPE O_NOFOLLOW(enabled) LEAF_OPTIMISATION
~ $ find bac_a_sable/ -type f -not -iregex '.*.(css|html?|php)$'
J'ai un repertoire qui contient des fichiers en tout genre. Je veux n'en garder que les fichiers PHP, HTML et CSS. La recherche sera basée sur l'extension du fichier. Ce que j'ai voulu faire c'est chercher tous les fichiers dont le nom ne contient ni html, ni htm, ni php, ni css et les supprimer.
~ $ find --version « find » de GNU version 4.2.28 Options activées: D_TYPE O_NOFOLLOW(enabled) LEAF_OPTIMISATION
~ $ find bac_a_sable/ -type f -not -iregex '.*.(css|html?|php)$'
-- Jacques L'helgoualc'h
moinsdespam
Dans <fraq4n$186d$,
Bonjour, J'ai un repertoire qui contient des fichiers en tout genre. Je veux n'en garder que les fichiers PHP, HTML et CSS. La recherche sera basée sur l'extension du fichier. Ce que j'ai voulu faire c'est chercher tous les fichiers dont le nom ne contient ni html, ni htm, ni php, ni css et les supprimer.
J'ai parcouru rapidement le man et quelques documents sur internet, mais je n'arive à rien meme apres quelques tentatives de tatonnement...
Il fallait parcourir plus longuement le man. Si c'est faisable, ça s'y trouve forcement
Auriez-vous une piste?
Dans le man : ! expr True if expr is false.
Ce qui donne : find . ! -name *txt
pour afficher tous les fichiers qui ne finissent pas par txt.
Voici ma version de find: :~/ja_genista$ find --version GNU find version 4.2.31 Built using GNU gnulib version 2007-02-24 Features enabled: D_TYPE O_NOFOLLOW(enabled) LEAF_OPTIMISATION
J'ai la même.
-- Frédéric Bleu,e adj. et n. m. Qui est d'une couleur voisine du rouge, mais pas très : un ciel bleu, des yeux bleus, les flots bleus [..]. Fig. Bouch. : un steak bleu ; s'emploie pour désigner un steak rouge. (Pierre Desproges : D.S.U.É (et des BN))
Dans <fraq4n$186d$1@cabale.usenet-fr.net>,
Bonjour,
J'ai un repertoire qui contient des fichiers en tout genre.
Je veux n'en garder que les fichiers PHP, HTML et CSS.
La recherche sera basée sur l'extension du fichier.
Ce que j'ai voulu faire c'est chercher tous les fichiers dont le nom ne
contient ni html, ni htm, ni php, ni css et les supprimer.
J'ai parcouru rapidement le man et quelques documents sur internet, mais
je n'arive à rien meme apres quelques tentatives de tatonnement...
Il fallait parcourir plus longuement le man. Si c'est faisable, ça s'y
trouve forcement
Auriez-vous une piste?
Dans le man :
! expr True if expr is false.
Ce qui donne :
find . ! -name *txt
pour afficher tous les fichiers qui ne finissent pas par txt.
Voici ma version de find:
mihamina@localhost:~/ja_genista$ find --version
GNU find version 4.2.31
Built using GNU gnulib version 2007-02-24
Features enabled: D_TYPE O_NOFOLLOW(enabled) LEAF_OPTIMISATION
J'ai la même.
--
Frédéric
Bleu,e adj. et n. m. Qui est d'une couleur voisine du rouge, mais pas très : un
ciel bleu, des yeux bleus, les flots bleus [..]. Fig. Bouch. : un steak bleu ;
s'emploie pour désigner un steak rouge. (Pierre Desproges : D.S.U.É (et des BN))
Bonjour, J'ai un repertoire qui contient des fichiers en tout genre. Je veux n'en garder que les fichiers PHP, HTML et CSS. La recherche sera basée sur l'extension du fichier. Ce que j'ai voulu faire c'est chercher tous les fichiers dont le nom ne contient ni html, ni htm, ni php, ni css et les supprimer.
J'ai parcouru rapidement le man et quelques documents sur internet, mais je n'arive à rien meme apres quelques tentatives de tatonnement...
Il fallait parcourir plus longuement le man. Si c'est faisable, ça s'y trouve forcement
Auriez-vous une piste?
Dans le man : ! expr True if expr is false.
Ce qui donne : find . ! -name *txt
pour afficher tous les fichiers qui ne finissent pas par txt.
Voici ma version de find: :~/ja_genista$ find --version GNU find version 4.2.31 Built using GNU gnulib version 2007-02-24 Features enabled: D_TYPE O_NOFOLLOW(enabled) LEAF_OPTIMISATION
J'ai la même.
-- Frédéric Bleu,e adj. et n. m. Qui est d'une couleur voisine du rouge, mais pas très : un ciel bleu, des yeux bleus, les flots bleus [..]. Fig. Bouch. : un steak bleu ; s'emploie pour désigner un steak rouge. (Pierre Desproges : D.S.U.É (et des BN))
pas en forme aujourd'hui, il manque le ; final :) ne faut il pas quoté les {} ?, par ailleurs, le + ne me semble pas portable, mais je n'ai pas vérifié...
pas en forme aujourd'hui, il manque le ; final :)
ne faut il pas quoté les {} ?, par ailleurs, le + ne me semble pas
portable, mais je n'ai pas vérifié...
ce qui permet de traiter les fichiers avec des blancs dans le nom.
PS : l'interret du -prune est que s'il existe un répertoire en .htm
tout son contenu ne sera pas traité, sinon, je vous laisse voir ce
qui ce passe :)
Cordialement,
Cyrille Lefevre.
--
mailto:Cyrille.Lefevre-news%nospam@laposte.net.invalid
supprimer "%nospam% et ".invalid" pour me repondre.
remove "%nospam" and ".invalid" to answer me.
pas en forme aujourd'hui, il manque le ; final :) ne faut il pas quoté les {} ?, par ailleurs, le + ne me semble pas portable, mais je n'ai pas vérifié...
pas en forme aujourd'hui, il manque le ; final :) ne faut il pas quoté les {} ?, par ailleurs, le + ne me semble pas portable, mais je n'ai pas vérifié...
Le "+" est standard et est une alternative a ";". Avec des shells standard, pas besoin de quoter "{}".
xargs -r0 pour que ce soit une alternative a -exec +.
ce qui permet de traiter les fichiers avec des blancs dans le nom.
Des blancs ou des quotes ou des backslashes ou des chemins trop long.
PS : l'interret du -prune est que s'il existe un répertoire en .htm tout son contenu ne sera pas traité, sinon, je vous laisse voir ce qui ce passe :) [...]
pas en forme aujourd'hui, il manque le ; final :)
ne faut il pas quoté les {} ?, par ailleurs, le + ne me semble pas
portable, mais je n'ai pas vérifié...
Le "+" est standard et est une alternative a ";". Avec des
shells standard, pas besoin de quoter "{}".
xargs -r0 pour que ce soit une alternative a -exec +.
ce qui permet de traiter les fichiers avec des blancs dans le nom.
Des blancs ou des quotes ou des backslashes ou des chemins trop
long.
PS : l'interret du -prune est que s'il existe un répertoire en .htm
tout son contenu ne sera pas traité, sinon, je vous laisse voir ce
qui ce passe :)
[...]
pas en forme aujourd'hui, il manque le ; final :) ne faut il pas quoté les {} ?, par ailleurs, le + ne me semble pas portable, mais je n'ai pas vérifié...
Le "+" est standard et est une alternative a ";". Avec des shells standard, pas besoin de quoter "{}".
xargs -r0 pour que ce soit une alternative a -exec +.
ce qui permet de traiter les fichiers avec des blancs dans le nom.
Des blancs ou des quotes ou des backslashes ou des chemins trop long.
PS : l'interret du -prune est que s'il existe un répertoire en .htm tout son contenu ne sera pas traité, sinon, je vous laisse voir ce qui ce passe :) [...]
Ca ne faisait pas partie des requirements.
-- Stéphane
Jacques L'helgoualc'h
Le 14-03-2008, Stephane Chazelas a écrit :
2008-03-13, 23:29(+01), Cyrille Lefevre: [...]
PS : l'interret du -prune est que s'il existe un répertoire en .htm tout son contenu ne sera pas traité, sinon, je vous laisse voir ce qui ce passe :) [...]
Ca ne faisait pas partie des requirements.
La question ne parle pas de sous-arborescence, mais si la réponse est utilisée dans le but plus général de nettoyer un (sous-)site ouaibe, il vaut mieux ne pas essayer de détruire les répertoires...
Reste à choisir si on précise « -type f » ou « -not -type d » ? -- Jacques L'helgoualc'h
Le 14-03-2008, Stephane Chazelas <cette.adresse@est.invalid> a écrit :
2008-03-13, 23:29(+01), Cyrille Lefevre:
[...]
PS : l'interret du -prune est que s'il existe un répertoire en .htm
tout son contenu ne sera pas traité, sinon, je vous laisse voir ce
qui ce passe :)
[...]
Ca ne faisait pas partie des requirements.
La question ne parle pas de sous-arborescence, mais si la réponse est
utilisée dans le but plus général de nettoyer un (sous-)site ouaibe, il
vaut mieux ne pas essayer de détruire les répertoires...
Reste à choisir si on précise « -type f » ou « -not -type d » ?
--
Jacques L'helgoualc'h
PS : l'interret du -prune est que s'il existe un répertoire en .htm tout son contenu ne sera pas traité, sinon, je vous laisse voir ce qui ce passe :) [...]
Ca ne faisait pas partie des requirements.
La question ne parle pas de sous-arborescence, mais si la réponse est utilisée dans le but plus général de nettoyer un (sous-)site ouaibe, il vaut mieux ne pas essayer de détruire les répertoires...
Reste à choisir si on précise « -type f » ou « -not -type d » ? -- Jacques L'helgoualc'h
Stephane Chazelas
2008-03-14, 09:14(+00), Jacques L'helgoualc'h:
Le 14-03-2008, Stephane Chazelas a écrit :
2008-03-13, 23:29(+01), Cyrille Lefevre: [...]
PS : l'interret du -prune est que s'il existe un répertoire en .htm tout son contenu ne sera pas traité, sinon, je vous laisse voir ce qui ce passe :) [...]
Ca ne faisait pas partie des requirements.
La question ne parle pas de sous-arborescence, mais si la réponse est utilisée dans le but plus général de nettoyer un (sous-)site ouaibe, il vaut mieux ne pas essayer de détruire les répertoires...
Reste à choisir si on précise « -type f » ou « -not -type d » ?
C'est un autre probleme, mais de toutes facons, rm -f ne supprime pas les répertoires.
Note que -not n'est pas standard, lui preferer !
-- Stéphane
2008-03-14, 09:14(+00), Jacques L'helgoualc'h:
Le 14-03-2008, Stephane Chazelas <cette.adresse@est.invalid> a écrit :
2008-03-13, 23:29(+01), Cyrille Lefevre:
[...]
PS : l'interret du -prune est que s'il existe un répertoire en .htm
tout son contenu ne sera pas traité, sinon, je vous laisse voir ce
qui ce passe :)
[...]
Ca ne faisait pas partie des requirements.
La question ne parle pas de sous-arborescence, mais si la réponse est
utilisée dans le but plus général de nettoyer un (sous-)site ouaibe, il
vaut mieux ne pas essayer de détruire les répertoires...
Reste à choisir si on précise « -type f » ou « -not -type d » ?
C'est un autre probleme, mais de toutes facons, rm -f ne
supprime pas les répertoires.
PS : l'interret du -prune est que s'il existe un répertoire en .htm tout son contenu ne sera pas traité, sinon, je vous laisse voir ce qui ce passe :) [...]
Ca ne faisait pas partie des requirements.
La question ne parle pas de sous-arborescence, mais si la réponse est utilisée dans le but plus général de nettoyer un (sous-)site ouaibe, il vaut mieux ne pas essayer de détruire les répertoires...
Reste à choisir si on précise « -type f » ou « -not -type d » ?
C'est un autre probleme, mais de toutes facons, rm -f ne supprime pas les répertoires.
Note que -not n'est pas standard, lui preferer !
-- Stéphane
Jacques L'helgoualc'h
Le 14-03-2008, Stephane Chazelas a écrit :
2008-03-14, 09:14(+00), Jacques L'helgoualc'h: [...]
Reste à choisir si on précise « -type f » ou « -not -type d » ?
C'est un autre probleme, mais de toutes facons, rm -f ne supprime pas les répertoires.
Oui, mais autant être prudent, il se trouvera bien un lecteur impétueux ou étourdi pour passer à « rm -r ».
L'option -f n'est pas (toujours ?) nécessaire :
~ $ type rm rm is aliased to `rm -iv '
...mais (GNU)find appelle directement /bin/rm :
~ $ find bac_a_sable/ -type f -exec rm -v {} + détruit `bac_a_sable/vga_1105.jpg' [...] ~ $ find bac_a_sable/ -exec rm -v {} + rm: ne peut enlever `bac_a_sable/': est un répertoire
Note que -not n'est pas standard, lui preferer !
Ah oui, merci --- dommage, ça me semble plus lisible, et le shell peut jouer quelques tours :
~ $ echo ! -bash: ! : event not found
-- Jacques L'helgoualc'h
Le 14-03-2008, Stephane Chazelas <cette.adresse@est.invalid> a écrit :
2008-03-14, 09:14(+00), Jacques L'helgoualc'h:
[...]
Reste à choisir si on précise « -type f » ou « -not -type d » ?
C'est un autre probleme, mais de toutes facons, rm -f ne
supprime pas les répertoires.
Oui, mais autant être prudent, il se trouvera bien un lecteur impétueux
ou étourdi pour passer à « rm -r ».
L'option -f n'est pas (toujours ?) nécessaire :
~ $ type rm
rm is aliased to `rm -iv '
...mais (GNU)find appelle directement /bin/rm :
~ $ find bac_a_sable/ -type f -exec rm -v {} +
détruit `bac_a_sable/vga_1105.jpg'
[...]
~ $ find bac_a_sable/ -exec rm -v {} +
rm: ne peut enlever `bac_a_sable/': est un répertoire
Note que -not n'est pas standard, lui preferer !
Ah oui, merci --- dommage, ça me semble plus lisible, et le shell peut
jouer quelques tours :