Comment supprimer une liste de fichier avec RM ??

Comment supprimer une liste de fichier avec RM ?? - Linux et OS Alternatifs

Marsh Posté le 31-12-2001 à 10:21:01    

j'ai fait un find et ai obtenue un fihier "listeasupprimer"
 
maintenant je voudrais supprimer tous les fichiers de cette liste, comment puis-je faire ?
 
J'ai essayé divers truc et le man rm, mais je trouve pas !!


---------------
toujours un petit mot gentil:
Reply

Marsh Posté le 31-12-2001 à 10:21:01   

Reply

Marsh Posté le 31-12-2001 à 10:23:46    

ben...
 
rm < nomdufichieraveclaliste
 
théoriquement, ca doit amrcher.


---------------
L'ingénieur chipset nortiaux : Une iFricandelle svp ! "Spa du pâté, hin!" ©®Janfynette | "La plus grosse collec vivante de bans abusifs sur pattes" | OCCT v12 OUT !
Reply

Marsh Posté le 31-12-2001 à 10:28:23    

be oui mais ca marche pas ca me dit ca  
 
Syntaxe: rm [-firRe] [--] Fichier...


---------------
toujours un petit mot gentil:
Reply

Marsh Posté le 31-12-2001 à 11:14:10    

olicel a écrit a écrit :

j'ai fait un find et ai obtenue un fihier "listeasupprimer"
 
maintenant je voudrais supprimer tous les fichiers de cette liste, comment puis-je faire ?
 
J'ai essayé divers truc et le man rm, mais je trouve pas !!  



A utiliser avec précaution : dans le find, au lieu de le terminer par un -print, tu écris ça :
~$ find ./ -name "tes fichiers" -exec 'rm' {} ';'
Le début, avant le -exec, c'est ce que tu as mis pour trouver ta liste de fichiers. 'rm' c'est la commande à appliquer quand un fichier est trouvé, {} est la référence au fichier qui vient d'être trouvé, le point-virgule termine l'expression. 'faut faire attention de bien mettre les quotes où il faut (autour de rm et du point-virgule, et pas autour des accolades.
'fallait faire man find :)

Reply

Marsh Posté le 31-12-2001 à 11:15:26    

pourquoi pas un
cat listefichier | rm

Reply

Marsh Posté le 31-12-2001 à 11:24:24    

Ah, tiens, si tu veux les mettre dans /tmp avant de les effacer (histoire d'éviter une connerie :) )
find ./ -name "<tes fichiers>" -exec 'cp' {} /tmp ';'
 
Myocastor : ouais, ça me plaît bien, mais ça marche pas...
~$ cat listefichiers | rm
rm: Trop peu de paramètres.

Reply

Marsh Posté le 31-12-2001 à 11:28:20    

ouia le truc de myocastor, j'avais deja essayé.
 
merci pour le find -exec, ca ouvre de nouveau horizon ca
ca rend les chose bocoup plus simple
 
connaissais po  :)


---------------
toujours un petit mot gentil:
Reply

Marsh Posté le 31-12-2001 à 11:35:32    

J'avais cherché ça il y a longtemps (ça devait être pour le même genre de truc), et j'en avais pas mal sué pour comprendre la syntaxe exacte du machin, car le man ne donne pas d'exemple, donc je trouvais pas comment faire.
La réponse était perdue dans les abysses de 'info find' :)

Reply

Marsh Posté le 31-12-2001 à 19:12:37    

ca dois pas se terminer par   \;  normalement ?

Reply

Marsh Posté le 01-01-2002 à 11:56:45    

cassidy a écrit a écrit :

ca dois pas se terminer par   \;  normalement ?  



Ça a le même effet, c'est au choix, il s'agit d'un caractère à ne pas interpréter par la commande mais par le "-exec"

Reply

Marsh Posté le 01-01-2002 à 11:56:45   

Reply

Marsh Posté le 02-01-2002 à 16:15:16    

sinon a partir de ta liste de fichiers tu peux aussi faire:
 
cat liste_fichiers | xargs rm
 
++

Reply

Marsh Posté le 02-01-2002 à 16:20:19    

Ah, oui, c'est bien, ça, xargs. Je le note dans un coin, ça peut toujours servir.

Reply

Marsh Posté le 02-01-2002 à 19:00:07    

yep tres util

Reply

Marsh Posté le 07-01-2002 à 14:05:52    

je dirais meme plus : indispensable :D

Reply

Marsh Posté le 07-01-2002 à 14:07:58    

c rigolo, y'a plein de gens qui confondent entrée standard avec ligne de commande ! :/

Reply

Marsh Posté le 07-01-2002 à 14:20:19    

minusplus a écrit a écrit :

c rigolo, y'a plein de gens qui confondent entrée standard avec ligne de commande ! :/  



Tu expliques ?

Reply

Marsh Posté le 07-01-2002 à 14:39:02    

ben  
 
rm < liste
 
ou
 
cat liste | rm
 
envoie une liste de noms de fichiers sur le stdin de rm, pas dans sa liste de paramètres. or, rm, l'entrée standard, il s'en fout...
 
pour poser le résultat d'une commande sur la ligne de commande d'une autre commande (chui xlair là ? :D) je veux dire : pour passer le résultat d'une commande en paramètre d'une autre il faut utiliser les back-ticks ou $ :
 
rm `find ./`
ou
rm $("find ./" )

Reply

Marsh Posté le 07-01-2002 à 14:47:21    

ok mais xargs permet justement de construire une ligne de commande a partir des donnees de l'entree standard et de la commande passee en parametre.
 
Dans le cas du rm c'est sur que ca ne s'impose pas et la solution que tu proposes est en effet la plus adaptee je pense, mais il y a d'autres cas, dans des scripts notamment, ou xargs se revele vraiment tres utile

Reply

Marsh Posté le 07-01-2002 à 14:51:00    

tootafait, c le pas juste aprés ! (interactif et toot et toot ! :D)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed