Bonjour,
Comment faire pour effacer tous les fichiers d'un répertoire sauf un précis ?
voila j'ai le répertoire /mes_fichiers dans ce répertoire il y a plusieurs fichiers qui ce créé avec des noms aléatoires.
Ce que je souhaite, c'est effacer sans connaître leurs tous les fichiers sauf un précis.
Nom du fichier précis : mon_fichier.txt
Comment faire ?
Merci pour toutes réponses.
# simplement
Posté par zerbro . Évalué à 3.
cp /mesfichiers/mon_fichier.txt /tmp/
rm -rf /mesfichier/*
cp /tmp/mon_fichier.txt /mesfichiers/
tu mets tout ca dans un script, et tu obtiens la commande que tu veux .
faut pas chercher compliquer ! Ou peut etre ai-je mal compris ce que tu veux faire.
[^] # Re: simplement
Posté par furai (site web personnel) . Évalué à 2.
ls | grep -v mon_fichier.txt | xargs rm
sans rancune ^_^
[^] # Re: simplement
Posté par Mouns (site web personnel) . Évalué à 3.
ne marche pas pour mon_fichier.txt.old
sans rancune ^_^
[^] # Re: simplement
Posté par Moonz . Évalué à 1.
Ca résoud pas le pb de l'espace, mais ça marche pour .mon_fichier.txt~ ^^
[^] # Re: simplement
Posté par Ph Husson (site web personnel) . Évalué à 2.
On continue ? :)
[^] # Re: simplement
Posté par gaaaaaAab . Évalué à 2.
rm `ls | grep -v mon_fichier.txt`
à part que les backquote sont un peu chiant à choper sur un azerty :)
sinon, doit y avoir moyen de faire ça avec l'expansion du shell aussi.
D'ailleurs, quelques minutes de man et quelques essais plus tard, en bash,
ça doit le faire
# Highlander
Posté par Pooly (site web personnel) . Évalué à 4.
-->[] poussez pas j'suis deja dehors.
[^] # Re: Highlander
Posté par Pooly (site web personnel) . Évalué à 3.
ls | grep -v mon_fichier.txt | xargs rm
[^] # Re: Highlander
Posté par xusnet . Évalué à 1.
Merci et merci a tous pour vos réponses.
# et perl ?
Posté par Mouns (site web personnel) . Évalué à 2.
perl -e ' unlink $_ for <*.ext>'
dans ton cas, je ferai un truc dans le genre :
perl -e ' for my $file ( <*> ) { unlink $file unless grep { $_ eq $file } qw( toto.txt tata.txt tu.txt ); }'
cela efface tous les fichiers du dossier courant sauf toto.txt tata.txt et tu.txt .
[^] # Re: et perl ?
Posté par gc (site web personnel) . Évalué à 3.
perl -e ' unlink for <*.ext>'
# Avec Bash
Posté par PeyoB . Évalué à 3.
shopt -s extglob
# On y va
rm !(mon_fichier.txt)
# moi aussi j've jouer :)
Posté par Cereal Killer . Évalué à 1.
[^] # Re: moi aussi j've jouer :)
Posté par Cereal Killer . Évalué à 2.
[^] # Re: moi aussi j've jouer :)
Posté par totof2000 . Évalué à 2.
[^] # Re: moi aussi j've jouer :)
Posté par totof2000 . Évalué à 2.
ls | awk 'f (!/^test1.c$/) {print $0} ' | xargs rm
[^] # Re: moi aussi j've jouer :)
Posté par alexissoft . Évalué à 4.
et ça c'est encore plus puissant car en rajoutant -type d ou -type f on peut choisir si c'est un dossier ou un fichier qu'on veut éliminer.
en plus ton exemple va effacer en récursif, et va garder les répertoires donc si t'a un répertoire/truc/machin et un répertoire/machin, il va pas supprimer répertoire/truc/machin et il va garder le répertoire.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.