Dossiers vides

davez

Nouveau membre
11 Janvier 2008
6
0
Bonjour,


je suis a la recherche d'une application capable de rechercher les dossiers vides dans mon mac et de les supprimés.
J'ai beau chercher je n'en trouve aucun.
Quelqu un a une piste ?

Merci d'avance
 

r e m y

Cas clinique
Club MacG
4 Novembre 2000
41 492
4 321
59
St Germain en Laye - FRANCE
Est-ce bien utile???
Un dossier vide par défintiion, ne prend pas grande place!

Au pire, quand tu en trouves un, tu le poubelise manuellement toi-même si tu es sûr qu'il ne sert à rien. C'est mieux que de le faire automatiquement et de risquer de supprimer un dossier vide mais dont une application a besoin (pour y stocker des fichiers temporaires qu'elle supprimes ensuite).
 

pascalformac

Légende
Club MacG
23 Novembre 2003
58 699
1 814
d'accord avec remy
risque de virer un dossier qui a une fonction
( même si souvent en cas de besoin il se recérerait , autant eviter)

les seuls dossiers vides eventuellement manipulables tranquillement sont ceux dans tes fichiers persos
 

Arlequin

Membre masqué
Club MacG
4 Août 2004
12 229
989
DTC
et hop un petit déterrage en rêgle

j'aimerais malgré tout supprimer ces dossiers vides, non par soucis de gain de place, mais pour simplifier l'affichage de l'arborescence

Je précise que cela doit se faire sur un volume réseau (serveur en raid) qui contient plusieurs milliers de dossiers / sous dossiers / sous-sous dossiers

Le but étant de supprimer uniquement les dossiers vides !

Là où je m'interroge aussi: un dossier contenant un sous dossier vide est il considéré comme vide (de fichiers) ? ou "plein" puisque contenant un dossier ?

merci de vos lumières :zen:
 

ceslinstinct

Membre d’élite
Club MacG
10 Août 2004
2 069
111
21
et hop un petit déterrage en rêgle
Là où je m'interroge aussi: un dossier contenant un sous dossier vide est il considéré comme vide (de fichiers) ? ou "plein" puisque contenant un dossier ?

merci de vos lumières :zen:
Bonjour

Un dossier qui contient qu'un sous-dossier qui lui aussi contient un sous-dossier vide, si l'application de recherche des dossiers vides est bien faite, alors les 3 dossiers sont considérés comme vides.

C'est le genre de logiciel à n'utiliser que dans le dossier Users pour pas prendre de risques.

Sur un volume réseau (serveur en raid) c'est à tester.

@+
 

Arlequin

Membre masqué
Club MacG
4 Août 2004
12 229
989
DTC
Bonjour

Un dossier qui contient qu'un sous-dossier qui lui aussi contient un sous-dossier vide, si l'application de recherche des dossiers vides est bien faite, alors les 3 dossiers sont considérés comme vides.

C'est le genre de logiciel à n'utiliser que dans le dossier Users pour pas prendre de risques.

Sur un volume réseau (serveur en raid) c'est à tester.

@+

ok

une idée de logiciel ? ou en ligne de commande, pourquoi pas. Comme c'est un one shot, je n'ai pas besoin spécialement d'une appli

merci d'être passé
 

ceslinstinct

Membre d’élite
Club MacG
10 Août 2004
2 069
111
21
ok

une idée de logiciel ? ou en ligne de commande, pourquoi pas. Comme c'est un one shot, je n'ai pas besoin spécialement d'une appli

merci d'être passé
Bonjour

Comment virer les dossiers vides inutiles.
J'ai tenté de le faire avec un AppleScript, pour comprendre et avoir une solution.

J'ai participé à un Forum pour voir si l'on pouvais résoudre ce problème, et ça marche (du moins chez moi avec Léopard 10.5.8).

C'est pas la solution que tu recherche, mais si ça te donne une idée on sait jamais.

ATTENTION: Faire des tests avant d'utiliser cette solution.

Non testé avec Lion, à toi de voir si tu ose le faire.:)

Le sujet qui donne le code (L'appli n'est pas de moi).

Post 38 télécharge SuppressionDossiersVides.zip (50 Ko) code non bridé.

http://forum.macfr.com/index.php?showtopic=27347

PS: Dit moi si ça fonctionne sur ton volume (lors des tests) pour savoir si il faut pas recompiler le code pour fonctionne en 64 au lieu de 32

Cordialement

@+
 
Dernière édition:

PA5CAL

Vétéran
Club MacG
21 Juillet 2005
9 228
597
Île-de-France
Bonjour

Sous Terminal, il est très simple de trouver les dossiers vides et de les supprimer. Pour les trouver, la commande est :
Bloc de code:
find . -type d -empty
Le « . » représente le dossier courant, et désigne ici le dossier de départ de la recherche (les dossiers vides trouvés font partie de ses sous-dossiers). Ce dossier de départ peut être remplacé par le chemin d'un autre dossier.

Pour supprimer les dossiers vides, il suffit d'ajouter la commande adéquate à la suite :
Bloc de code:
find . -type d -empty -exec rmdir {} \;
Il est à noter que cette commande retourne des messages d'erreur, car en continuant la recherche elle ne parvient pas à traiter les dossiers qu'elle vient de supprimer. C'est parfaitement normal, même si c'est un peu bête.


Toutefois, je ne peux m'empêcher de réitérer la mise en garde qui avait été faite au début de la discussion concernant de la dangerosité d'une telle opération. Supprimer un dossier qui est utile au système ou à une application peut mener à des dysfonctionnements.

En ce qui me concerne, j'ai trouvé plus d'un millier de dossiers vides sous mon dossier de session (petite maison), et j'ai pu déterminer qu'une grande partie d'entre eux serait utilisée à un moment ou à un autre. Je ne me risquerai donc pas à lancer la commande que j'ai donnée ci-dessus depuis l'emplacement par défaut de Terminal, qui est justement ce dossier de session.
 

ceslinstinct

Membre d’élite
Club MacG
10 Août 2004
2 069
111
21
Bonjour

Sous Terminal, il est très simple de trouver les dossiers vides et de les supprimer. Pour les trouver, la commande est :
Bloc de code:
find . -type d -empty
Le « . » représente le dossier courant, et désigne ici le dossier de départ de la recherche (les dossiers vides trouvés font partie de ses sous-dossiers). Ce dossier de départ peut être remplacé par le chemin d'un autre dossier.

Pour supprimer les dossiers vides, il suffit d'ajouter la commande adéquate à la suite :
Bloc de code:
find . -type d -empty -exec rmdir {} \;
Il est à noter que cette commande retourne des messages d'erreur, car en continuant la recherche elle ne parvient pas à traiter les dossiers qu'elle vient de supprimer. C'est parfaitement normal, même si c'est un peu bête.


Toutefois, je ne peux m'empêcher de réitérer la mise en garde qui avait été faite au début de la discussion concernant de la dangerosité d'une telle opération. Supprimer un dossier qui est utile au système ou à une application peut mener à des dysfonctionnements.

En ce qui me concerne, j'ai trouvé plus d'un millier de dossiers vides sous mon dossier de session (petite maison), et j'ai pu déterminer qu'une grande partie d'entre eux serait utilisée à un moment ou à un autre. Je ne me risquerai donc pas à lancer la commande que j'ai donnée ci-dessus depuis l'emplacement par défaut de Terminal, qui est justement ce dossier de session.
Bonjour

Je me pose la question?

Si au lieu de virer à la corbeille les dossiers vides, on leurs donne un label (couleur spéciale dossiers vides) ils prennent pas beaucoup de place sur le DD.

Quand on les trouvent avec cette couleur à nous de prendre la décision de les éliminer où pas.

C'était la première version de mon code.

Défaut: faut faire un contrôle de temps en temps (problème à résoudre suivant si l'on éteint jamais l'ordinateur).

Le code cité plus haut, je ne l'utilise que dans des dossiers créé par moi, juste pour un contrôle.

Cordialement

@+
 

Arlequin

Membre masqué
Club MacG
4 Août 2004
12 229
989
DTC
Merci à tous les deux, je vais lire attentivement avant de faire quoi que ce soit

pour te "rassurer" pascal:

le disque réseau en question est un disque d'archivage de fichiers photos clients

en gros, voici comment il est structuré:

racine>revendeurs>clients>n° de pochette>fichiers photos

il y a plusieurs revendeurs, clients et n°s de pochettes

Il se trouve que lors d'un nettoyage à la truelle (non pas par moi), le "responsable" précédent a fait une recherche sur la date de création des fichiers et a supprimé tout ce qui était antérieur à une certaine date. Les fichiers ont bien été supprimés, mais, de ce fait, sont restés bon nombre de dossiers vides !

Donc pas de soucis point de vue système, cela ne concerne absolument pas ni mon DD interne, ni de backup TM ou autre disque de clonage :zen:

Sur ce, passez un bon we :up:

---------- Nouveau message ajouté à 15h36 ---------- Le message précédent a été envoyé à 15h35 ----------

Non testé avec Lion, à toi de voir si tu ose le faire.:)

même pas peur :D
 

pollomax

Nouveau membre
22 Avril 2010
4
0
Bonjour

Comment virer les dossiers vides inutiles.
J'ai tenté de le faire avec un AppleScript, pour comprendre et avoir une solution.

J'ai participé à un Forum pour voir si l'on pouvais résoudre ce problème, et ça marche (du moins chez moi avec Léopard 10.5.8).

C'est pas la solution que tu recherche, mais si ça te donne une idée on sait jamais.

ATTENTION: Faire des tests avant d'utiliser cette solution.

Non testé avec Lion, à toi de voir si tu ose le faire.:)

Le sujet qui donne le code (L'appli n'est pas de moi).

Post 38 télécharge SuppressionDossiersVides.zip (50 Ko) code non bridé.

http://forum.macfr.com/index.php?showtopic=27347

PS: Dit moi si ça fonctionne sur ton volume (lors des tests) pour savoir si il faut pas recompiler le code pour fonctionne en 64 au lieu de 32

Cordialement

@+

Bonjour , je suis en train d'essayer le script sur mon DDE avec Yosemite, pour le moment cela tourne en boucle .
puis peut t'on adapté ce script "
  1. find . -type d -empty -exec rmdir {} \; " pour un disque dur externe ?
 

bompi

El Moderador
Modérateur
Club MacG
12 Février 2004
41 944
3 181
Il n'y a pas de raison que ça ne fonctionne pas sur un volume externe ; peut-être se méfier un peu des volumes formatés en FAT (FAT32 ou ExFAT) en faisant un petit test dans un sous-dossier avant de se lancer dans le grand ménage [ça doit fonctionner, la commande find étant robuste et fiable, mais avec des systèmes de fichiers tiers, on n'est jamais assez prudent].
 

macomaniac

Ouroboros
Club MacG
20 Septembre 2012
85 368
25 758
Forêt de Fontainebleau
Salut pollomax.

Tu veux exécuter la commande de suppression des dossiers vides sur le volume d'un DDE contenant l'OS «Yosemite». Toute la question est : à quel niveau de l'arborescence de ce volume ? À partir de la racine (impliquant tout le Système  de l'OS) ? Ou rien que sur le dossier de compte de tel utilisateur ? Si c'est depuis la racine (sur tout l'OS), les conseils de prudence donnés en 2011 par PA5CAL sont toujours d'actualité : tu risques de benner des dossiers ou sous-dossiers qui ont une fonction formelle dans le Système, même s'ils sont vides ; si c'est sur le dossier de compte d'un utilisateur, les enjeux se réduisent à peu (tu risques, par exemple, de supprimer le dossier .Trash vide du dossier de compte, lequel sera re-créé en cas de démarrage dans la session de l'OS du DDE).

Techniquement, la commande s'adapterait ainsi =>

- a) sur le volume entier du DDE (impactant tout le Système) :

Bloc de code:
sudo find /Volumes/nom_du_volume_du_DDE -type d -empty -exec rmdir {} \;
(avec frappe à l'aveugle du mot-de-passe admin à la demande de password + pression sur la touche "Entrée" à nouveau). sudo est requis, si tu veux supprimer des dossiers vides dont le propriétaire est root. En pratique, tu peux taper d'abord :

Bloc de code:
sudo find
simplement et sauter un espace. Puis tu fais un glisser-déposer au pointeur de l'icône du volume monté de ton DDE dans le champ de la fenêtre du «Terminal», ce qui renseigne automatiquement le chemin au volume et son nom, avec saut d'espace automatique en sortie. Il ne te reste plus qu'à faire un copier-coller terminal de :

Bloc de code:
-type d -empty -exec rmdir {} \;
et d'activer la commande. Mais je le redis : comme il est difficile de mesurer a priori l'impact de la suppression de tous les dossiers vides dans l'arborescence d'un OS, l'intention me paraît sujette à caution... Il serait prudent, dans un premier temps, de se borner à la partie informative de la commande :

Bloc de code:
sudo find /Volumes/nom_du_volume_du_DDE -type d -empty
qui afficherait en sortie la liste des dossiers vides trouvés - ce qui permettrait une inspection en survol de leur nature.


--------------------​

- b) sur le dossier de compte d'un seul utilisateur :

Bloc de code:
sudo find /Volumes/nom_du_volume_du_DDE/Users/username -type d -empty -exec rmdir {} \;
(sudo requis si l'utilisateur n'a pas les mêmes identifiants que toi ; conseillé quand même si c'est le même que toi). En pratique, tu démarques la méthode ci-dessus :

Bloc de code:
sudo find
+ saut d'un espace => tu vas graphiquement dans l'arborescence du volume de ton DDE au répertoire : /Users (Utilisateurs) que tu ouvres, tu sélectionnes le dossier de compte de l'utilisateur machin et tu en fais un glisser-déposer dans la fenêtre du «Terminal», avant de conclure par le copier-coller terminal de :

Bloc de code:
-type d -empty -exec rmdir {} \;

La commande purement informative serait du type :

Bloc de code:
sudo find /Volumes/nom_du_volume_du_DDE/Users/username -type d -empty

--------------------
[Personnellement parlant, j'ai du mal à concevoir le besoin de se lancer dans cette entreprise de suppression à l'aveuglette de dossiers vides...]


 
Dernière édition:

pollomax

Nouveau membre
22 Avril 2010
4
0
Salut pollomax.

Tu veux exécuter la commande de suppression des dossiers vides sur le volume d'un DDE contenant l'OS «Yosemite». Toute la question est : à quel niveau de l'arborescence de ce volume ? À partir de la racine (impliquant tout le Système  de l'OS) ? Ou rien que sur le dossier de compte de tel utilisateur ? Si c'est depuis la racine (sur tout l'OS), les conseils de prudence donnés en 2011 par PA5CAL sont toujours d'actualité : tu risques de benner des dossiers ou sous-dossiers qui ont une fonction formelle dans le Système, même s'ils sont vides ; si c'est sur le dossier de compte d'un utilisateur, les enjeux se réduisent à peu (tu risques, par exemple, de supprimer le dossier .Trash vide du dossier de compte, lequel sera re-créé en cas de démarrage dans la session de l'OS du DDE).

Techniquement, la commande s'adapterait ainsi =>

- a) sur le volume entier du DDE (impactant tout le Système) :

Bloc de code:
sudo find /Volumes/nom_du_volume_du_DDE -type d -empty -exec rmdir {} \;
(avec frappe à l'aveugle du mot-de-passe admin à la demande de password + pression sur la touche "Entrée" à nouveau). sudo est requis, si tu veux supprimer des dossiers vides dont le propriétaire est root. En pratique, tu peux taper d'abord :

Bloc de code:
sudo find
simplement et sauter un espace. Puis tu fais un glisser-déposer au pointeur de l'icône du volume monté de ton DDE dans le champ de la fenêtre du «Terminal», ce qui renseigne automatiquement le chemin au volume et son nom, avec saut d'espace automatique en sortie. Il ne te reste plus qu'à faire un copier-coller terminal de :

Bloc de code:
-type d -empty -exec rmdir {} \;
et d'activer la commande. Mais je le redis : comme il est difficile de mesurer a priori l'impact de la suppression de tous les dossiers vides dans l'arborescence d'un OS, l'intention me paraît sujette à caution... Il serait prudent, dans un premier temps, de se borner à la partie informative de la commande :

Bloc de code:
sudo find /Volumes/nom_du_volume_du_DDE -type d -empty
qui afficherait en sortie la liste des dossiers vides trouvés - ce qui permettrait une inspection en survol de leur nature.


--------------------​

- b) sur le dossier de compte d'un seul utilisateur :

Bloc de code:
sudo find /Volumes/nom_du_volume_du_DDE/Users/username -type d -empty -exec rmdir {} \;
(sudo requis si l'utilisateur n'a pas les mêmes identifiants que toi ; conseillé quand même si c'est le même que toi). En pratique, tu démarques la méthode ci-dessus :

Bloc de code:
sudo find
+ saut d'un espace => tu vas graphiquement dans l'arborescence du volume de ton DDE au répertoire : /Users (Utilisateurs) que tu ouvres, tu sélectionnes le dossier de compte de l'utilisateur machin et tu en fais un glisser-déposer dans la fenêtre du «Terminal», avant de conclure par le copier-coller terminal de :

Bloc de code:
-type d -empty -exec rmdir {} \;

La commande purement informative serait du type :

Bloc de code:
sudo find /Volumes/nom_du_volume_du_DDE/Users/username -type d -empty

--------------------
[Personnellement parlant, j'ai du mal à concevoir le besoin de se lancer dans cette entreprise de suppression à l'aveuglette de dossiers vides...]

bonjour , non les disque dure c'est juste pour stocker mes dossier de google drive et dropbox et je sait que j'ai plein de sous vide , suite au trie que j'ai fait , c'est juste ces dossiers la que je veux supprimer .