Journal Supprimer les fichiers avec un ~

Posté par  (site Web personnel) .
Étiquettes : aucune
0
16
avr.
2003
Voici un script qui supprime (récursivement) tous les fichiers finissant par un ~ (et générés automatiquement par un éditeur de texte) uniquement si le fichier original (sans le tild) existe.
Je n'ai pas continué, mais on peut l'améliorer: vérifier les dates des fichiers, gérer les autres types de fichier temporaire... Avis aux amateurs.



#! /bin/bash
# Supprime tous les fichiers *~ s'il existe sans ~ dans le répertoire passé en paramètre.
# Si pas de répertoire passé en paramètre, on prend le rép courant

if [ $# -lt 1 ]
then
nomrep=.
else
nomrep=$1
fi
listefich=`find $nomrep -name "*~"`
for i in $listefich
do
ficsans=`echo $i|tr -d '~' `
if test -f $ficsans
then
rm $i
else
echo "fichier original inexistant"
fi
done
exit 0
  • # Re: Supprimer les fichiers avec un ~

    Posté par  (site Web personnel) . Évalué à 1.

    Fait chier, l'avait indenté le code, et ça a tout avalé...
  • # Re: Supprimer les fichiers avec un ~

    Posté par  . Évalué à 3.

    (find tonrep -name '*~') | while read a; do [ -f `echo $a | cut -f1 -d~ ` ] && rm -f $a; done

    C'est plus petit, ca utilise pas mal de chose du shell, et c'est pour se faire la main .....

    Ma contrib a moi
  • # Re: Supprimer les fichiers avec un ~

    Posté par  . Évalué à 3.

    Hem, je suppose que les fichiers que tu veux supprimer
    ce sont les fichiers de sauvegarde crees par VIM
    Dans ce cas tu ferais mieux de mettre dans ton .vimrc

    :set backupdir=$HOME/tmp

    pour qu'il les foute la et non dans ton dossier courant.

    Sinon moi je me suis fait ce script pour nettoyer mon dossier courant

    $ cat `which squeeze`
    #!/bin/sh
    # SQUEEZE efface les fichiers superfuls et compacte les fichiers.tex et
    # readme
    #
    echo "nettoyage de $PWD"
    find "$PWD" \( -name \*~ -or -name \*.o -or -name \*.log -or -name \*\# \) -exec rm -f {} \;
    find $PWD \( -name \*.tex -or -name \*README\* -or -name \*readme\* \) -exec gzip -9 {} \;
    find "$PWD" -name ".*.swp" -exec rm -f {} \;
    • [^] # Re: Supprimer les fichiers avec un ~

      Posté par  (site Web personnel) . Évalué à 1.

      En fait, c'est plutôt avec Xemacs :-)))
      Mais le but est de nettoyer tout mon compte, de manière régulière, sans perdre d'infos...

      Le script, je l'ai écrit au tout début de l'année, quand je n'avait pas encore suivi mon module de Bash à la fac. Maintenant que c'est fait (le module, quoi), ce code me parait vraiment très améliorable. je l'ai juste mis en ligne pour échanger des idées... Je suis sûr qu'il y a plein de Linuxiens qui ont de super scripts, mais qui les gardent jalousement...

      D'autres part, tes scripts sont intéressants, mais ne vérifient pas que l'original existe. C'est pratique pour ne pas perdre sans faire attention d'infos utiles...
      • [^] # Re: Supprimer les fichiers avec un ~

        Posté par  (site Web personnel) . Évalué à 1.

        > D'autres part, tes scripts sont intéressants, mais ne vérifient pas que l'original existe. C'est pratique pour ne pas perdre sans faire attention d'infos utiles...

        Mais c'est tout de suite plus dur quand l'original a changé de nom...
        • [^] # Re: Supprimer les fichiers avec un ~

          Posté par  (site Web personnel) . Évalué à 1.

          C'est vrai.
          Une solution: faire un file sur tous les fichiers du répertoire, puis un diff sur tous les fichiers du même type, puis estimer l'écart entre deux fichiers, puis...
          Pas simple du tout.
          Si on se limite aux fichiers qui n'ont pas changé de nom, c'est pas complet, mais ca peut être pratique.
    • [^] # Re: Supprimer les fichiers avec un ~

      Posté par  . Évalué à 2.

      dans le meme genre, pour netoyer le dir courant :

      #!/bin/sh
      echo "Removing foo files ... "
      echo "- *~ ..."
      rm -vf *~
      echo "- .*~ ..."
      rm -vf .*~
      echo "- #* ..."
      rm -vf \#*
      echo "- .#* ..."
      rm -vf .\#*
      echo "Cleaning complete."

      vala :)
  • # Re: Supprimer les fichiers avec un ~

    Posté par  . Évalué à 1.

    Personnelement j'utilise ca :


    find . | egrep "~$" | perl -n -e 'system("rm $_");'

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n’en sommes pas responsables.