Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 28/05/2007, à 21:09

Strash

[bash] Lister/supprimer les dossiers vides

Après réorganisation de ma bibliothèque musicale par Amarok, je me retrouve avec pas mal de dossiers vides. J'aimerai les effacer avec un petit script bash. Seulement je n'ai pas trouvé de solution pour savoir si un dossier est vide ou pas...

Ça permettra d'augmenter mes skills bash en même temps.

Merci

Hors ligne

#2 Le 28/05/2007, à 23:01

BlaireauOne

Re : [bash] Lister/supprimer les dossiers vides

Strash a écrit :

je me retrouve avec pas mal de dossiers vides. J'aimerai les effacer avec un petit script bash.

http://pwet.fr/man/linux/commandes/find

1._ sélection des répertoires vides et vérification par la commande ls :

find . -type d -empty | xargs ls


2._ sélection des répertoires vides et remove de ces répertoires

find . -type d -empty | xargs rm -r


Bonne soirée smile

Hors ligne

#3 Le 28/05/2007, à 23:21

Strash

Re : [bash] Lister/supprimer les dossiers vides

Merci de ta réponse rapide !

J'ai encore un peu de mal avec les commandes bash et je n'avais pas pensé à find !

Par contre comment améliorer ton script pour qu'il supprime aussi les répertoires contenant des espaces ? (vi je suis chiant tongue)

Hors ligne

#4 Le 28/05/2007, à 23:42

abetsic

Re : [bash] Lister/supprimer les dossiers vides

find . -type d -empty -exec rmdir "{}" \;

a l'air de fonctionner après l'avoir testé.

{} désigne le fichier trouvé par find, et on rajoute les guillemets pour qu'il supprime les dossiers avec des espaces. Par contre, bien qu'il me signale une erreur, les dossiers vide sont bien supprimés.

Hors ligne

#5 Le 28/05/2007, à 23:47

Balkoth

Re : [bash] Lister/supprimer les dossiers vides

On peut aussi rajouter l'option --null à xargs et l'option -print0 à find :

1._ sélection des répertoires vides et vérification par la commande ls :

find . -type d -empty -print0 | xargs --null ls

2._ sélection des répertoires vides et suppression de ces répertoires

find . -type d -empty -print0 | xargs --null rmdir

Hors ligne

#6 Le 07/01/2010, à 14:36

bonhomme lego

Re : [bash] Lister/supprimer les dossiers vides

Bonjour, j'ai exactement le même soucis, mais quand j'essaie avec les commandes ci-dessus il ne trouve que les dossiers vide sur la partition ubuntu,

alors que mon dossier musique est sur une autre partition,

comment faire?


aqua-univers.com

Hors ligne

#7 Le 07/01/2010, à 14:52

credenhill

Re : [bash] Lister/supprimer les dossiers vides

hello
cd /l'autre partition
puis le
find . ...

Hors ligne

#8 Le 07/01/2010, à 15:43

bonhomme lego

Re : [bash] Lister/supprimer les dossiers vides

ok, merci


aqua-univers.com

Hors ligne

#9 Le 07/01/2010, à 17:34

scholi

Re : [bash] Lister/supprimer les dossiers vides

rmdir *

devrait aussi marche en principe. Il fait juste des erreurs pour tout dossier non vide. Si on ne veut pas les messages d'erreurs

rmdir * 2> /dev/null

S'il n'y a pas de solution, c'est qu'il n'y a pas de problème.

Hors ligne

#10 Le 06/09/2011, à 18:42

luron

Re : [bash] Lister/supprimer les dossiers vides

Pour voir la liste des dossiers supprimés:

find . -depth -type d -empty -exec rmdir --verbose {} \;

Hors ligne

#11 Le 29/07/2014, à 11:46

teke

Re : [bash] Lister/supprimer les dossiers vides

le plus simple et rapide,

find . -type d -empty -delete