Tout d'abord, notez que la suppression de répertoires vides n'est généralement pas nécessaire. Certains services ou applications peuvent même avoir besoin de certains répertoires pour exister. Soyez conscient de ce que vous faites.
Vous pouvez répertorier les dossiers vides avec find, lorsqu'ils sont exécutés à partir de Terminal.app:
find . -type d -empty
Par défaut, findrépertorie les fichiers et les dossiers, mais ici, les -type drestreint aux répertoires et l' -emptyoption affiche uniquement les répertoires vides. Cela récursive tous les dossiers descendant de votre répertoire personnel ( ou abrégé ). Pour étendre cela à l'ensemble de votre système de fichiers, utilisez:/Users/your-username/~
find / -type d -empty
Ici, /signifie la racine de votre système de fichiers Mac OS X. Vous pouvez bien sûr également utiliser tout autre point de départ, par exemple votre disque externe monté sous ;/Volumes/your-disk-name
find /Volumes/your-disk-name -type d -empty
Maintenant, si vous souhaitez supprimer les findsorties, ajoutez simplement -delete, comme ceci:
find . -type d -empty -delete
Remarque: cela ne demandera pas de confirmation . Il supprimera tous les répertoires qu'il peut, c'est-à-dire ceux où vous avez la permission de supprimer. Ils ne seront pas mis à la poubelle mais disparus pour toujours. Si vous souhaitez être invité avant la suppression, remplacez la commande par quelque chose comme ceci:
Il me donne une sortie sur illegal option -- ttypeet emptysemble ne pas pouvoir reconnaître.
AsTeR
1
@AsTeR La version OS X de findrequiert un chemin, donc essayez à nouveau avec find . -type d, non find -type d(ce dernier fonctionne pour GNU find).
slhck
6
Bien que cela fonctionne, il ne localise probablement pas les dossiers qui contiennent uniquement les fichiers .DS_Store cachés, les rendant techniquement non vides mais apparaissant vides pour l'utilisateur. Si un utilisateur veut trouver tous les dossiers qui semblent vides, ceux qu'il avait déjà ouverts dans le Finder ne seront pas trouvés de cette façon car le Finder aurait ajouté un fichier .DS_Store.
SuperTempel
Nous pouvons donc avoir besoin de le faire en deux étapes: supprimez d'abord les fichiers .DS_Store (peut être fait en utilisant findde la même manière que ci-dessus), puis utilisez la commande suggérée pour supprimer les répertoires vides restants.
gerlos
6
J'ai créé un petit programme gratuit qui résout mieux cela:
@kenchew Je crois que vous cherchez cecifind ~/Documents -type f -name 'Icon?' -print -delete;
JayRizzo
2
Pour poursuivre cet effort:
J'ai créé un script que j'utilise pour nettoyer mon dossier de documents de temps en temps, car je suis en voie de TOC et fatigué d'être surchargé APP & comme la simplicité.
Je l'ai fait dans un effort pour améliorer et fournir une solution alternative.
Enfin, pour le fichier d'icônes de @ kenche, cela ne semble pas exister sur mon mac car je n'ai pas modifié les icônes de mon dossier, mais vous pouvez le faire dans l'inspecteur. En faisant glisser une image en haut à gauche, il créera le Icon^Mfichier sur ce répertoire.
Pour les trouver aussi, vous pouvez exécuter:
(Devriez-vous être paranoïaque si vous trouvez un faux positif, utilisez: ctrl+ vctrl+ mau lieu de?)
find ~/Documents-type f -name 'Icon?'-print;# and to remove
find ~/Documents-type f -name 'Icon?'-print -delete;
IMPORTANT
Veuillez, comme @slhck l'a indiqué ci-dessus: Certains services ou applications peuvent même avoir besoin de certains répertoires pour exister. Cela s'applique également aux fichiers DS_Store & Icon, VEUILLEZ être conscient de ce que vous faites. Remarque: ce script ne demandera pas de confirmation. Il supprimera tous les répertoires qu'il peut. c'est-à-dire ceux où vous avez des autorisations pour supprimer. Ils ne seront pas mis à la poubelle mais disparus pour toujours.
Script BASH
#!/bin/bash# =============================================================================# MAC OSX HIGH SIERRA 10.13.4 (17E199)# Terminal: Version: 2.8.2 64-Bit (Intel): Yes# Terminal Location: /Applications/Utilities/Terminal.app# =============================================================================# Terminal CLEAN UP YOUR DOCUMENTS FOLDER.# =============================================================================# START WHAT IS BELIEVED TO BE EMPTY NOW.# =============================================================================
echo 'Searching Documents for empty folders...'
find ~/Documents-type d -empty;
# =============================================================================# SHOW & THEN REMOVE ALL MAC OS DS_Store FILES# =============================================================================
echo 'Searching Documents for DS_Store files...'
find ~/Documents-type f -name ".DS_Store"-print;
echo 'Removing DS_Store files...'
find ~/Documents-type f -name ".DS_Store"-print -delete;
# =============================================================================# SHOW & THEN REMOVE ALL MAC OS ZERO SIZED FILES# =============================================================================
echo 'Searching Documents for ZERO file sized files...'
find ~/Documents-type f -empty;
echo 'Removing ZERO file sized files...'
find ~/Documents-type f -empty -delete;
# =============================================================================# SHOW & THEN REMOVE Icon^M FILES# USE THE ? MARK FOR EASE OF USE YOU CAN ALSO SUB 'CTRL + V & CTRL + M' FOR ^M # =============================================================================
echo 'Searching Documents for Icon files...'
find ~/Documents-type f -name 'Icon?'-print;
echo 'Removing Icon files from Documents...'
find ~/Documents-type f -name 'Icon?'-print -delete;# SEEMINGLY THE SAME AS# find ~/Documents -type f -size 0 -print# find ~/Documents -type f -size 0 -print -delete
# =============================================================================# SHOWCASE NEW FOUND EMPTY FOLDERS# =============================================================================
echo 'Showcasing new result of existing and new found empty folders...'
find ~/Documents-type d -empty;
echo 'Deleting result of empty folders...'
find ~/Documents-type d -empty -delete;
echo 'Showcasing the removal of said, 'empty folders'...'
find ~/Documents-type d -empty;
Réponses:
Tout d'abord, notez que la suppression de répertoires vides n'est généralement pas nécessaire. Certains services ou applications peuvent même avoir besoin de certains répertoires pour exister. Soyez conscient de ce que vous faites.
Vous pouvez répertorier les dossiers vides avec
find
, lorsqu'ils sont exécutés à partir de Terminal.app:Par défaut,
find
répertorie les fichiers et les dossiers, mais ici, les-type d
restreint aux répertoires et l'-empty
option affiche uniquement les répertoires vides. Cela récursive tous les dossiers descendant de votre répertoire personnel ( ou abrégé ). Pour étendre cela à l'ensemble de votre système de fichiers, utilisez:/Users/your-username/
~
Ici,
/
signifie la racine de votre système de fichiers Mac OS X. Vous pouvez bien sûr également utiliser tout autre point de départ, par exemple votre disque externe monté sous ;/Volumes/your-disk-name
Maintenant, si vous souhaitez supprimer les
find
sorties, ajoutez simplement-delete
, comme ceci:Remarque: cela ne demandera pas de confirmation . Il supprimera tous les répertoires qu'il peut, c'est-à-dire ceux où vous avez la permission de supprimer. Ils ne seront pas mis à la poubelle mais disparus pour toujours. Si vous souhaitez être invité avant la suppression, remplacez la commande par quelque chose comme ceci:
la source
illegal option -- t
type
etempty
semble ne pas pouvoir reconnaître.find
requiert un chemin, donc essayez à nouveau avecfind . -type d
, nonfind -type d
(ce dernier fonctionne pour GNUfind
).find
de la même manière que ci-dessus), puis utilisez la commande suggérée pour supprimer les répertoires vides restants.J'ai créé un petit programme gratuit qui résout mieux cela:
http://www.macupdate.com/app/mac/52551/find-empty-folders
L'avantage de ce programme est qu'il trouve également des dossiers qui sont apparemment vides mais contiennent le fichier invisible ".DS_Store".
Et il vous permet également de déplacer immédiatement les éléments trouvés dans la corbeille.
la source
find ~/Documents -type f -name 'Icon?' -print -delete;
Pour poursuivre cet effort:
J'ai créé un script que j'utilise pour nettoyer mon dossier de documents de temps en temps, car je suis en voie de TOC et fatigué d'être surchargé APP & comme la simplicité.
Je l'ai fait dans un effort pour améliorer et fournir une solution alternative.
Enfin, pour le fichier d'icônes de @ kenche, cela ne semble pas exister sur mon mac car je n'ai pas modifié les icônes de mon dossier, mais vous pouvez le faire dans l'inspecteur. En faisant glisser une image en haut à gauche, il créera le
Icon^M
fichier sur ce répertoire.Pour les trouver aussi, vous pouvez exécuter:
IMPORTANT
Script BASH
Fin du script.
Le script peut être vu ici sur GitHub
Les références:
À propos des icônes qui représentent des fichiers sur votre Mac
Est-il possible de supprimer tous les dossiers contenant uniquement .DS_Store de manière récursive?
Rechercher des dossiers et sous-dossiers contenant uniquement ".DS_Store"
Comment trouver tous les fichiers de zéro octet dans un répertoire, y compris les sous-répertoires
Icône? fichier sur le bureau OS X
la source