Przede wszystkim zauważ, że usuwanie pustych katalogów zwykle nie jest konieczne. Niektóre usługi lub aplikacje mogą nawet wymagać istnienia pewnych katalogów. Uważaj na to, co robisz.
Możesz wyświetlić listę pustych folderów findprzy uruchomieniu z Terminal.app:
find . -type d -empty
Domyślnie findwyświetla listę plików i folderów, ale tutaj -type dogranicza je do katalogów, a -emptyopcja pokazuje tylko puste katalogi. Spowoduje to rekurencję wszystkich folderów malejących z katalogu domowego ( lub krótkich ). Aby rozwinąć to do całego systemu plików, użyj:/Users/your-username/~
find / -type d -empty
Tutaj /oznacza katalog główny systemu plików Mac OS X. Możesz oczywiście użyć dowolnego innego punktu początkowego, na przykład dysku zewnętrznego zamontowanego pod ;/Volumes/your-disk-name
find /Volumes/your-disk-name -type d -empty
Teraz, jeśli chcesz usunąć dowolne dane findwyjściowe, po prostu dołącz -delete:
find . -type d -empty -delete
Uwaga: nie poprosi o potwierdzenie . Spowoduje to usunięcie wszystkich katalogów, które można, tj. Tych, w których masz uprawnienia do usunięcia. Nie zostaną przeniesieni do kosza, ale znikną na zawsze. Jeśli chcesz zostać zapytany przed usunięciem, zmień polecenie na coś takiego:
Daje mi wyniki illegal option -- ttypei emptywydaje się, że nie jestem w stanie rozpoznać.
AsTeR
1
@AsTeR Wersja OS X findwymaga ścieżki, więc spróbuj ponownie find . -type d, a nie find -type d(ta ostatnia działa dla GNU find).
slhck
6
Chociaż to działa, prawdopodobnie nie lokalizuje folderów, które zawierają tylko ukryte pliki .DS_Store, co czyni je technicznie niepustymi, ale wydają się puste dla użytkownika. Jeśli użytkownik chce znaleźć wszystkie foldery, które wydają się puste, te, które kiedyś otworzył w Finderze, nie zostaną znalezione w ten sposób, ponieważ Finder dodałby plik .DS_Store.
SuperTempel,
Być może będziemy musieli to zrobić w dwóch krokach: najpierw usuń pliki .DS_Store (można to zrobić findw podobny sposób jak powyżej), a następnie użyj sugerowanego polecenia, aby usunąć pozostałe puste katalogi.
gerlos
6
Stworzyłem mały i darmowy program, który rozwiązuje to lepiej:
@kenchew Uważam, że tego szukaszfind ~/Documents -type f -name 'Icon?' -print -delete;
JayRizzo
2
Aby kontynuować ten wysiłek:
Stworzyłem skrypt, którego od czasu do czasu używam do czyszczenia folderu dokumentów, ponieważ jestem już na drodze do OCD i mam dość przeciążania aplikacji i lubię prostotę.
Zrobiłem to w celu ulepszenia i zapewnienia alternatywnego rozwiązania.
Na koniec, w przypadku pliku ikon @ kenche, plik ten nie wydaje się istnieć na moim komputerze Mac, ponieważ nie zmodyfikowałem ikon folderów, ale możesz to zrobić w Inspektorze. Po przeciągnięciu obrazu w lewym górnym rogu utworzy Icon^Mplik w tym katalogu.
Aby je znaleźć, możesz uruchomić:
(Czy powinieneś być paranoikiem, jeśli znajdziesz fałszywie dodatni, użyj: ctrl+ vctrl+ mzamiast?)
find ~/Documents-type f -name 'Icon?'-print;# and to remove
find ~/Documents-type f -name 'Icon?'-print -delete;
WAŻNY
Proszę, jak podano powyżej @slhck: Niektóre usługi lub aplikacje mogą nawet wymagać istnienia pewnych katalogów. Dotyczy to również plików DS_Store & Icon, PROSZĘ Bądź świadomy tego, co robisz. Uwaga: ten skrypt nie prosi o potwierdzenie. Spowoduje to usunięcie wszystkich katalogów, które można. tzn. te, w których masz uprawnienia do usunięcia. Nie zostaną przeniesieni do kosza, ale znikną na zawsze.
Skrypt 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;
Odpowiedzi:
Przede wszystkim zauważ, że usuwanie pustych katalogów zwykle nie jest konieczne. Niektóre usługi lub aplikacje mogą nawet wymagać istnienia pewnych katalogów. Uważaj na to, co robisz.
Możesz wyświetlić listę pustych folderów
find
przy uruchomieniu z Terminal.app:Domyślnie
find
wyświetla listę plików i folderów, ale tutaj-type d
ogranicza je do katalogów, a-empty
opcja pokazuje tylko puste katalogi. Spowoduje to rekurencję wszystkich folderów malejących z katalogu domowego ( lub krótkich ). Aby rozwinąć to do całego systemu plików, użyj:/Users/your-username/
~
Tutaj
/
oznacza katalog główny systemu plików Mac OS X. Możesz oczywiście użyć dowolnego innego punktu początkowego, na przykład dysku zewnętrznego zamontowanego pod ;/Volumes/your-disk-name
Teraz, jeśli chcesz usunąć dowolne dane
find
wyjściowe, po prostu dołącz-delete
:Uwaga: nie poprosi o potwierdzenie . Spowoduje to usunięcie wszystkich katalogów, które można, tj. Tych, w których masz uprawnienia do usunięcia. Nie zostaną przeniesieni do kosza, ale znikną na zawsze. Jeśli chcesz zostać zapytany przed usunięciem, zmień polecenie na coś takiego:
źródło
illegal option -- t
type
iempty
wydaje się, że nie jestem w stanie rozpoznać.find
wymaga ścieżki, więc spróbuj ponowniefind . -type d
, a niefind -type d
(ta ostatnia działa dla GNUfind
).find
w podobny sposób jak powyżej), a następnie użyj sugerowanego polecenia, aby usunąć pozostałe puste katalogi.Stworzyłem mały i darmowy program, który rozwiązuje to lepiej:
http://www.macupdate.com/app/mac/52551/find-empty-folders
Zaletą tego programu jest to, że znajduje również foldery, które są najwyraźniej puste, ale zawierają niewidoczny plik „.DS_Store”.
Pozwala także od razu przenieść znalezione przedmioty do Kosza.
źródło
find ~/Documents -type f -name 'Icon?' -print -delete;
Aby kontynuować ten wysiłek:
Stworzyłem skrypt, którego od czasu do czasu używam do czyszczenia folderu dokumentów, ponieważ jestem już na drodze do OCD i mam dość przeciążania aplikacji i lubię prostotę.
Zrobiłem to w celu ulepszenia i zapewnienia alternatywnego rozwiązania.
Na koniec, w przypadku pliku ikon @ kenche, plik ten nie wydaje się istnieć na moim komputerze Mac, ponieważ nie zmodyfikowałem ikon folderów, ale możesz to zrobić w Inspektorze. Po przeciągnięciu obrazu w lewym górnym rogu utworzy
Icon^M
plik w tym katalogu.Aby je znaleźć, możesz uruchomić:
WAŻNY
Skrypt BASH
Koniec skryptu.
Skrypt można zobaczyć tutaj na GitHub
Bibliografia:
Informacje o ikonach reprezentujących pliki na komputerze Mac
Jakikolwiek sposób, aby usunąć wszystkie foldery, które zawierają tylko .DS_Store rekurencyjnie?
Znajdź foldery i podfoldery zawierające tylko „.DS_Store”
Jak znaleźć wszystkie pliki zero-bajtowe w katalogu, w tym w podkatalogach
Ikona? plik na pulpicie OS X.
źródło