Supprimer les fichiers avec une taille à zéro

Résolu
OlivrT Messages postés 323 Date d'inscription   Statut Membre Dernière intervention   -  
OlivrT Messages postés 323 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
comment pourrais-je supprimer les fichiers d'un de mes répertoires qui ont une taille à zéro ?
Egalement, dans le même répertoire j'ai des fichiers tels que :
FichierA
FichierA.txt
FichierB
FichierB.txt
comment pourrais-je supprimer ceux qui n'ont PAS l'extension "txt" ?

Merci d'avance

4 réponses

  1. aragon6980 Messages postés 1344 Statut Membre 253
     
    find . -type f -size 0c -delete
    5
  2. OlivrT Messages postés 323 Date d'inscription   Statut Membre Dernière intervention   36
     
    find . -type f -size 0c m'affiche les fichiers dont la taille est zéro, merci, MAIS le -delete ne fonctionne pas :-/
    Erreur :

    find: bad option -delete
    find: [-H | -L] path-list predicate-list
    1
    1. aragon6980 Messages postés 1344 Statut Membre 253
       
      essaye ceci alors (remplace rep/A par ton dossier

      #!/bin/sh

      # suppression de tous les fichiers vides (taille=0) dans /repA
      for ERASERHEAD in 'find /repA/ -size 0'
      do rm -f $ERASERHEAD
      done
      0
  3. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
     
    Salut,

     for i in *;do if [ ! -s "$i" ]; then echo "$i est vide";fi;done

    Si c'est ce que tu espères, remplace "echo..." par la commande adéquate ;-))
    1
    1. OlivrT Messages postés 323 Date d'inscription   Statut Membre Dernière intervention   36
       
      On y est presque :-) Voici ce que j'ai écris :

      cd $monrep
      for i in *
      do 
      	if [ ! -s "$i" ] 
      	then 
      		echo "$i est vide"
      	else
      		echo "$i n est pas vide"
      	fi
      done


      Le problème c'est qu'il m'affiche même les noms des répertoires ...
      Comment je peux parcourir uniquement les fichiers ?
      0
    2. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      Tu es sur quel système ? Quelle distrib ?

      Quelle est ta version de find ?
      0
    3. OlivrT Messages postés 323 Date d'inscription   Statut Membre Dernière intervention   36
       
      Je débute moi ... comment je réponds à ces questions ?
      Je peux te dire que c'est un serveur Unix avec Solaris 8 et j'utilise la libraire ksh, ça répond à tes questions :-/ ?
      0
    4. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      Ok pour Solaris et un shell ksh.
      Est-ce que cette commende :

      ls -F | grep -v '/$'

      Ne te renvoie que les fichiers ?
      0
    5. OlivrT Messages postés 323 Date d'inscription   Statut Membre Dernière intervention   36
       
      Oui. Je ne sais pas pourquoi mais certains sont suivis d'une étoile .. :
      fichiera.txt
      e.monscrippt*
      0
  4. OlivrT Messages postés 323 Date d'inscription   Statut Membre Dernière intervention   36
     
    Ca ne fonctionne pas :-( et je n'ai pas d'erreur :-/

    Mais j'ai une autre idée mais j'aurais besoin de toi pour démarrer.
    Comment lister les fichiers d'un répertoire ?

    La commande suivante : mavar='du -b $Fichier | awk '{ print $1 }''

    me retourne la taille d'un fichier, si je pouvais faire une boucle et sortir dans une variable le nom du fichier, il serait facile après de supprimer les fichiers dont la taille est à zéro.
    0