Comment supprimer une liste de fichier avec RM ?? - Linux et OS Alternatifs
Marsh Posté le 31-12-2001 à 10:23:46
ben...
rm < nomdufichieraveclaliste
théoriquement, ca doit amrcher.
Marsh Posté le 31-12-2001 à 10:28:23
be oui mais ca marche pas ca me dit ca
Syntaxe: rm [-firRe] [--] Fichier...
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
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.
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
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'
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"
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
++
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.
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 !
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 ?
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à ? ) 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 ./" )
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
Marsh Posté le 07-01-2002 à 14:51:00
tootafait, c le pas juste aprés ! (interactif et toot et toot ! )
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: