Risposte:
Prima di tutto nota che l'eliminazione di directory vuote di solito non è necessaria. Alcuni servizi o applicazioni potrebbero anche aver bisogno di esistere determinate directory. Sii consapevole di ciò che stai facendo.
Puoi elencare le cartelle vuote con find
, quando eseguito da Terminal.app:
find . -type d -empty
Per impostazione predefinita find
elenca file e cartelle, ma qui -type d
lo limita alle directory e l' -empty
opzione mostra solo directory vuote. Questo richiamerà tutte le cartelle che scendono dalla tua home directory ( o breve, ). Per espanderlo a tutto il tuo filesystem, usa:/Users/your-username/
~
find / -type d -empty
Qui, /
indica la radice del file system di Mac OS X. Ovviamente puoi anche usare qualsiasi altro punto di partenza, ad esempio il tuo disco esterno montato sotto ;/Volumes/your-disk-name
find /Volumes/your-disk-name -type d -empty
Ora, se vuoi eliminare qualunque find
output, aggiungi semplicemente -delete
, in questo modo:
find . -type d -empty -delete
Nota: questo non richiederà conferma . Eliminerà tutte le directory che può, vale a dire quelle in cui si dispone delle autorizzazioni per eliminare. Non saranno spostati nella spazzatura ma se ne andranno per sempre. Se si desidera che venga richiesto prima della rimozione, modificare il comando in qualcosa di simile al seguente:
find . -type d -empty -exec rm -ri '{}' \;
illegal option -- t
type
e empty
sembra non essere in grado di riconoscere.
find
richiede un percorso, quindi riprovare con find . -type d
, non find -type d
(quest'ultimo funziona per GNU find
).
find
in un modo simile come sopra), quindi usa il comando suggerito per rimuovere le directory vuote rimanenti.
Ho realizzato un programma piccolo e gratuito che risolve meglio questo:
http://www.macupdate.com/app/mac/52551/find-empty-folders
Il vantaggio di questo programma è che trova anche cartelle apparentemente vuote ma che contengono il file ".DS_Store" invisibile.
E ti consente anche di spostare subito gli elementi trovati nel Cestino.
find ~/Documents -type f -name 'Icon?' -print -delete;
Per favorire questo sforzo:
Ho creato uno script che utilizzo di tanto in tanto per ripulire la cartella dei miei documenti, dato che sono un tipo di disturbo ossessivo compulsivo e sono stanco di essere sovraccarico di APP e di semplicità.
L'ho fatto nel tentativo di migliorare e fornire una soluzione alternativa.
Infine, per il file icona di @ kenche, questo non sembra esistere sul mio mac in quanto non ho modificato le icone della mia cartella, ma puoi farlo in Impostazioni. Quando si trascina un'immagine in alto a sinistra, verrà creato il Icon^M
file in quella directory.
Per trovare anche quelli puoi eseguire:
(Dovresti essere paranoico se trovi un falso positivo quindi usa: ctrl+ v ctrl+ minvece di?)
find ~/Documents -type f -name 'Icon?' -print;
# and to remove
find ~/Documents -type f -name 'Icon?' -print -delete;
Per favore, come affermato in precedenza da @slhck: alcuni servizi o applicazioni potrebbero anche aver bisogno di esistere determinate directory. Questo vale anche per i file DS_Store & Icon, PER FAVORE Siate consapevoli di ciò che state facendo. Nota anche: questo script non chiederà conferma. Eliminerà tutte le directory che può. cioè quelli in cui hai i permessi per cancellare. Non saranno spostati nella spazzatura ma se ne andranno per sempre.
#!/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;
Fine della sceneggiatura.
Lo script può essere visto qui su GitHub
Informazioni sulle icone che rappresentano i file sul tuo Mac
Un modo per rimuovere tutte le cartelle che contengono solo .DS_Store in modo ricorsivo?
Trova cartelle e sottocartelle contenenti solo ".DS_Store"
Come trovare tutti i file a zero byte in una directory comprese le sottodirectory