#1 Le 03/12/2009, à 07:26
- inconnu
Supprimer des fichiers vides récursivement
Bonjour à tous
Je n'arrive pas à créer un script pour supprimer récursivement tout les fichiers dont la taille est de 0bytes à particine d'une racine prédéfinie
par exemple :
racine="/home/user/Bureau/Test"
j'ai essayé
fichiers='ls -aR1B'
et d'utiliser une boucle for fichier in $fichiers
mais ça ne marche pas.
Je peine à croire qu'il n'y a que le python qui puisse faire ça dans les langages dans lequel je me débrouille assez pour faire ça, mais j'aimerai pouvoir le faire en bash.
#2 Le 03/12/2009, à 07:36
- ®om
Hors ligne
#3 Le 03/12/2009, à 11:46
- inconnu
Re : Supprimer des fichiers vides récursivement
Merci en fait c'était find $racine -size 0c -delete
le bémol c'est que mon path réel contenait des espaces dont j'ai renommé le dossier.
Ensuite j'ai plusieurs erreurs : find: impossible de supprimer "/media/Documents/recupdata/#263043": Le dossier n'est pas vide
Pas étonnant car -size c'est le blocksize or le blockzize d'un fichier fait toujours 4ko il me semble.
de plus j'ai vérifier et certains dossier ne sont réellement pas vides, j'ai un trouvé un dossier qui devait être supprimé contenant un fichier texte de 110 octets.
Donc c'est peut être pas la solution la plus fiable et efficace.
#4 Le 03/12/2009, à 12:26
- kyncani
Re : Supprimer des fichiers vides récursivement
find "$racine" -type f -size 0 -delete
Hors ligne
#5 Le 03/12/2009, à 21:12
- inconnu
Re : Supprimer des fichiers vides récursivement
D'accord mais comme je disais c'est pas fiable et heureusement que ça n'a pas marché car ca supprime des fichiers non vides et dossiers non vides en principe, donc finalement je trie tout sous nautilus, je vais y passer du tant mais tant pis, pas le choix.
#6 Le 03/12/2009, à 22:22
- kyncani
Re : Supprimer des fichiers vides récursivement
L'option -type f filtre les fichiers uniquement. Tu ne devrais donc plus avoir de message d'erreur et seuls les fichiers vides devraient être supprimés.
Hors ligne
#7 Le 11/12/2009, à 08:49
- bgy
Re : Supprimer des fichiers vides récursivement
-size 0c ne fonctionne qu'avec les fichiers ASCII qui plus est.
Utilise plutôt l'opérateur -empty
find tondossier/ -empty -delete -maxdepth 1
Dernière modification par bgy (Le 11/12/2009, à 08:50)
Hors ligne
#8 Le 11/12/2009, à 10:31
- inconnu
Re : Supprimer des fichiers vides récursivement
Je me retrouve avec ça :
find: AVERTISSEMENT : vous avez spécifié l'option -maxdepth après un argument qui n'est pas une option -empty mais les options sont positionnelles (-maxdepth affecte les tests spécifiés avant aussi bien qu'après). SVP spécifiez des options avant les autres arguments.
#9 Le 11/12/2009, à 10:45
- ®om
Re : Supprimer des fichiers vides récursivement
-size 0c ne fonctionne qu'avec les fichiers ASCII qui plus est.
Tu as vu ça où?
-size n[cwbkMG]
File uses n units of space. The following suffixes can be used:
`b' for 512-byte blocks (this is the default if no suffix is
used)
`c' for bytes
Hors ligne
#10 Le 14/12/2009, à 20:57
- bgy
Re : Supprimer des fichiers vides récursivement
Tu as vu ça où?
J'ai parlé trop vite, en fait c'est vrai... pour les fichiers non vides.
Hors ligne
#11 Le 14/12/2009, à 21:20
- ®om
Re : Supprimer des fichiers vides récursivement
®om a écrit :Tu as vu ça où?
J'ai parlé trop vite, en fait c'est vrai... pour les fichiers non vides.
Encore une fois, tu as vu ça où que c'était que pour les fichiers non vides?
Dernière modification par ®om (Le 14/12/2009, à 21:21)
Hors ligne