Comment exclure certains fichiers d'une commande ? - Codes et scripts - Linux et OS Alternatifs
Marsh Posté le 24-05-2007 à 01:50:03
Et dans le man de ton shell, t'as cherché ?
En bash, on peut faire : rm [C-Z]*
Marsh Posté le 24-05-2007 à 08:48:51
cd ton_dir && find .|grev -vE '\(fichier_A\|fichier_B\)'|xargs rm -f $1
si l'astuce de regdub n'est pas possible ..
Marsh Posté le 30-05-2007 à 11:06:14
regdub : le truc c'est qu'avec les patterns ou les regexp on peut facilement exclure tous les fichiers commençant par X, mais c'est plus dur d'exclure uniquement un fichier avec un nom précis.
Suivant l'idée de fighting_falcon, mais pour une variante plus "lisible", je tenterai un :
rm $(ls * | grep -v not_this_file) |
Marsh Posté le 30-05-2007 à 12:22:31
Sinon y'a toujours les solutions du genre :
find . -maxdepth 1 ! -name toto -exec rm {} \; |
Marsh Posté le 30-05-2007 à 12:35:10
@Xavier_OM: Certes.
Sinon, on peut tout faire dans un "find" avec les bonnes options genre "! -name" et "-delete".
edit: j'aurais du faire un refresh avant de répondre
Marsh Posté le 30-05-2007 à 23:32:28
Merci à tous !!!
La solution de Xavier est très lisible mais les autres me donnent bien des idées pour d'autres choses
Ca fait pas longtemps longtemps que j'ai une utilisation intensive des systemes linux, mais ... c'est vraiment passionnant ne serait ce que le scripting shell.
Encore merci !
Marsh Posté le 23-05-2007 à 22:35:28
Bonjour,
Comment fait-on pour lancer une commande sur tous les fichiers compris dans un dossier, sauf les fichiers A et B ?
un exemple :
rm * SAUF A B
Il doit bien y avoir une commande pour faire ça et je ne la trouve pas ! Alors pour l'instant je copie les fichiers A et B dans un sous repertoire, je rm * puis je recopie A et B dans le repertoire avant de rmdir le sous repertoire temporaire ... c'est un peu lourd !
mais j'ai essayé de trouver sur le forum ou google j'ai pas trouvé ... dsl !
Si une bonne ame pouvait m'éclairer ...
Merci d'avance !