IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Linux Discussion :

Suppression fichier


Sujet :

Linux

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 54
    Points : 46
    Points
    46
    Par défaut Suppression fichier
    Bonjour ,

    Question qui va sans doute vous paraitre simple mais à la quelle je n'ai pas trouvé de réponse ..

    Je souhaite simplement , dans un script , supprimer tous les fichiers d'un répertoire qui ne sont pas de la forme "AC_*.csv"

    J'ai commencé ceci , mais ça ne fonctionne pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    for FIC in `ls 2>/dev/null`
    do
      if [ ${FIC} != "AC_*.csv" ]
        then
          rm ${FIC}
      fi  
    done
    Merci

  2. #2
    Membre expérimenté
    Avatar de narmataru
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 548
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 548
    Points : 1 680
    Points
    1 680
    Par défaut
    bonjour,
    Avec find se sera peut-être plus simple :

    find . -maxdepth 1 -type f -not -name "AC_*.csv" | xargs -n1 rm -f
    Pour plus d'informations 'man find'

  3. #3
    Membre chevronné

    Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 296
    Points : 1 803
    Points
    1 803
    Par défaut
    heuuuuuu !!!
    si tu redirige le resultat de ta selection dans /dev/null cela ne risque pas de fonctionner !
    et puis simplifie ........
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    for fic in $(ls AC_*.csv)
    do
    rm -f $fic
    done
    Cela devrait fonctionner......

  4. #4
    Expert confirmé
    Avatar de Katyucha
    Femme Profil pro
    DevUxSecScrumOps Full Stack Bullshit
    Inscrit en
    Mars 2004
    Messages
    3 287
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Irlande

    Informations professionnelles :
    Activité : DevUxSecScrumOps Full Stack Bullshit

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 287
    Points : 5 075
    Points
    5 075
    Par défaut
    Citation Envoyé par MarcG
    heuuuuuu !!!
    si tu redirige le resultat de ta selection dans /dev/null cela ne risque pas de fonctionner !
    et puis simplifie ........
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    for fic in $(ls AC_*.csv)
    do
    rm -f $fic
    done
    Cela devrait fonctionner......

    C'est pas la redirection des erreurs le 2> ??
    C'est moi ou toi ? Tinlin !
    Et justement elle veut pas supprimer les fichiers ayant "AC_*.csv". Or toi, tu supprimes justement ces fichiers ci :p


    Citation Envoyé par narmataru
    bonjour,
    Avec find se sera peut-être plus simple :

    find . -maxdepth 1 -type f -not -name "AC_*.csv" | xargs -n1 rm -f
    Pour plus d'informations 'man find'
    Faut vraiment que j'ai le réflexe | et xargs....
    T'as pas un cahier d'exercice ?

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 54
    Points : 46
    Points
    46
    Par défaut
    Merci narmataru , ça fonctionne.

    Merci aussi MarcG, mais il me semble que ta commande supprime les fichiers qui sont équivalents à AC_*.csv, or c'est le contraire que je souhaitais.

  6. #6
    Expert confirmé
    Avatar de becket
    Profil pro
    Informaticien multitâches
    Inscrit en
    Février 2005
    Messages
    2 854
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien multitâches
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 2 854
    Points : 5 915
    Points
    5 915
    Par défaut
    Pour l'écrire de la meme maniere que lili_bzh

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    for FICH in $( ls 2> /dev/null ) 
    do  
    if [ ${FICH/AC_*.csv/FALSE} != "FALSE" ] 
     then echo rm $FICH 
     fi
     done

    Enfin... presque 8)

  7. #7
    Membre expérimenté
    Avatar de narmataru
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 548
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 548
    Points : 1 680
    Points
    1 680
    Par défaut
    Citation Envoyé par Katyucha
    Citation Envoyé par MarcG
    heuuuuuu !!!
    si tu redirige le resultat de ta selection dans /dev/null cela ne risque pas de fonctionner !
    et puis simplifie ........
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    for fic in $(ls AC_*.csv)
    do
    rm -f $fic
    done
    Cela devrait fonctionner......

    C'est pas la redirection des erreurs le 2> ??
    C'est moi ou toi ? Tinlin !
    Et justement elle veut pas supprimer les fichiers ayant "AC_*.csv". Or toi, tu supprimes justement ces fichiers ci :p


    Citation Envoyé par narmataru
    bonjour,
    Avec find se sera peut-être plus simple :

    find . -maxdepth 1 -type f -not -name "AC_*.csv" | xargs -n1 rm -f
    Pour plus d'informations 'man find'
    Faut vraiment que j'ai le réflexe | et xargs....
    T'as pas un cahier d'exercice ?
    avec find on devrait normalement utiliser son option '-exec' mais chez moi ça ne marche j'ai toujours une erreur

  8. #8
    Membre éprouvé
    Avatar de Pouic
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    669
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 669
    Points : 977
    Points
    977
    Par défaut
    Meuh, c'est moche votre truc avec xargs...
    L'option -delete de find, c'est pour qui ?

  9. #9
    Membre expérimenté
    Avatar de narmataru
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 548
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 548
    Points : 1 680
    Points
    1 680
    Par défaut
    ha ben voui il est trop fort ce find !!

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 54
    Points : 46
    Points
    46
    Par défaut
    Je ne trouve pas de doc sur cette option -delete (même avec un man find), et je n'arrive pas à l'utiliser non plus

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find : option -delete incorrecte
    Faut-il disposer d'un système particulier pour l'utiliser ?

    Merci

  11. #11
    Membre expérimenté
    Avatar de narmataru
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 548
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 548
    Points : 1 680
    Points
    1 680
    Par défaut
    quelle version de find as-tu ?:

    narma@linimi:/tmp/toto$ find -version
    « find » de GNU version 4.2.27
    Options activées: D_TYPE O_NOFOLLOW(enabled) LEAF_OPTIMISATION

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 54
    Points : 46
    Points
    46
    Par défaut
    dois y avoir un truc ... je ne peux pas obtenir la version avec la commande ..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    find -version
     
    find: path-list predicate-list

  13. #13
    Expert confirmé
    Avatar de becket
    Profil pro
    Informaticien multitâches
    Inscrit en
    Février 2005
    Messages
    2 854
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien multitâches
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 2 854
    Points : 5 915
    Points
    5 915
    Par défaut
    C'est pourtant pas dur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    find ./  -type f  ! -name "AC_*.csv" -exec rm {} \;

  14. #14
    Membre expérimenté
    Avatar de narmataru
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 548
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 548
    Points : 1 680
    Points
    1 680
    Par défaut
    lance :
    man find
    puis dans le man fait :
    /version
    '/' permet d'effectuer une recherche et 'n' pour aller au mot recherché suivant. Ainsi tu verra l'option disponibe pour afficher ta version.
    Sinon tu es sous quelle ditribution linux ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. .bat (suppression fichier)
    Par toto&( dans le forum Autres Logiciels
    Réponses: 6
    Dernier message: 22/08/2006, 16h06
  2. suppression fichiers avec access et droits
    Par alexg81 dans le forum Access
    Réponses: 5
    Dernier message: 19/04/2006, 15h31
  3. suppression fichier avec erreur
    Par zeus312 dans le forum C
    Réponses: 5
    Dernier message: 23/02/2006, 11h24
  4. [VB NET 2005] Suppression Fichier
    Par metallicox dans le forum Windows Forms
    Réponses: 6
    Dernier message: 23/11/2005, 15h11
  5. [C#] [FTP] Envoi et suppression fichier sur ftp NON ANONYME!
    Par djsbens dans le forum Windows Forms
    Réponses: 14
    Dernier message: 30/03/2005, 10h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo