Précédent   Forum des professionnels en informatique > Systèmes > Linux > Système
Système Vos questions autour de l'administration système
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 12/09/2007, 09h47   #1
Futur Membre du Club
 
Inscription : août 2007
Messages : 52
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 52
Points : 16
Points : 16
Par défaut Supprimer plusieurs fichiers du même nom en une ligne de commande

Bonjour,

Premièrement désolé d'avance, je ne trouve pas ou ce poste à vraiment ça place dans le forum.

J'ai une arboréssence de fichier du genre :

D:\data\
dossier1\
_un_fichier_
dossier2\
_un_fichier_
dossier3\
_un_fichier_
_un_fichier_
D'autre fichier ce trouve dans ces dossiers et je ne doit pas les supprimer.

J'aimerais savoir si la commande rm me permettrait en une seul commande d'effacer tout les fichiers "_un_fichier_".

Merci d'avance...
Orbiplanax est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/09/2007, 12h44   #2
Expert Confirmé Sénior
 
Avatar de frp31
 
Homme francois
Ingénieur systèmes et réseaux
Inscription : juillet 2006
Messages : 3 546
Détails du profil
Informations personnelles :
Nom : Homme francois
Âge : 35
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur systèmes et réseaux
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : juillet 2006
Messages : 3 546
Points : 7 776
Points : 7 776
oui mais à condition de l'appeler depuis un chercheur

en fait c'est la command find qui doit alors appeler le rm :

Code :
find /data/ -type f -name _un_fichier_ -exec rm {} \;
mais hote moi d'un doute c'est bien sous unix ?
frp31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/09/2007, 16h20   #3
Futur Membre du Club
 
Inscription : août 2007
Messages : 52
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 52
Points : 16
Points : 16
Merci beaucoup pour ton aide.

Je tourne sur un winXP pro. Mais j'utilise cygwin...

Ta commande fonctionne bien quand je la tape directement dans la console cygwin :

find D:/Xxx/xxx/data/ -type f -name _UN_FICHER_ -exec rm {} \;

Par contre dans dans mon invite de commande windows ( j'ai aussi accès au cmd unix ) :

find D:/Xxx/xxx/data/ -type f -name _UN_FICHIER_ -exec rm {} \;
FIND : format incorrect de paramètre

et

find D:\Web\iged\data\ -type f -name _UN_FICHIER_ -exec rm {} \;
FIND : format incorrect de paramètre

Au final cette commande serra appelé par un script php.
Quand je génère ma commande et que je fait un exec(); en php ça ne donne rien. c'est sûrement en rapport avec l'erreur de format des paramètres.

Merci d'avance je commence à craquer
Orbiplanax est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/09/2007, 17h34   #4
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 8 306
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 8 306
Points : 8 590
Points : 8 590
Citation:
Envoyé par Orbiplanax Voir le message
Par contre dans dans mon invite de commande windows ( j'ai aussi accès au cmd unix )
Non, c'est faux, c'est pas le même find. Pour t'en convaincre, tapes find /? dans Cygwin et l'interpréteur Windows et observe.

Pour appeler la commande find Cygwin depuis un interpréteur de commande Windows classique, il faut que tu ailles (cd /d) d'abord le répertoire cygwin\bin : cd /d D:\cygwin\bin sur mon PC.

Si c'est appelé depuis un script PHP, pourquoi ne pas implémenter ta propre procédure de suppression en PHP ?
__________________

Du détail, du détail, du détail !!!
Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/09/2007, 18h25   #5
Futur Membre du Club
 
Inscription : août 2007
Messages : 52
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 52
Points : 16
Points : 16
Arg ...

Je ne sais plus comment j'ai fait mais j'ai accès au commande ls, clear, ... dans mon invite de commande windows.
Mais effectivement je n'avais pas pensé au problème des fonctions qui on le même nom.

C:/cygwin/bin/find D:\Xxx\xxx\data\ -type f -
name _UN_FICHIER_ -exec rm {} ;

Voila, ça ça à l'air de marcher. Juste, en plus de l'ajout du chemin du bin de cyg. Retirer le \ avant le ;

Je n'ai pas fait ma procédure perso en php pour effacer ces fichiers car vue le nombre de dossiers et fichiers que contiendra le dossier /data/ par la suite, rien ne serra plus rapide que de le faire en ligne de commande... enfin je croi :p en fait c'est une vague supposition :p

Voila voila, Merci beaucoup à vous deux ...
Orbiplanax est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h11.


 
 
 
 
Partenaires

Hébergement Web