Mac OS X'te boş klasörleri nasıl silebilirim?


28

Harici diskteki tüm boş klasörleri silmek istiyorum. Bunu nasıl yapabilirim?


Bunu yapmanın basit bir yolunu
buldum

Yanıtlar:


43

Öncelikle, boş dizinlerin silinmesinin genellikle gerekli olmadığını unutmayın. Bazı hizmetlerin veya uygulamaların var olması için belirli dizinlere ihtiyaç duyabilir. Ne yaptığınızın farkında olun.

findTerminal.app ile çalıştırıldığında boş klasörleri listeleyebilirsiniz :

find . -type d -empty

Varsayılan olarak find, dosya ve klasörleri listeler, ancak burada, -type ddizinlerle kısıtlar ve -emptyseçenek yalnızca boş dizinleri gösterir. Bu, ana dizininizden ( veya kısa ) azalan tüm klasörleri geri alır . Bunu tüm dosya sisteminize genişletmek için şunu kullanın:/Users/your-username/~

find / -type d -empty

Burada, /Mac OS X dosya sisteminizin kökünü belirtir. Elbette başka bir başlangıç ​​noktası da kullanabilirsiniz, örneğin harici diskiniz ;/Volumes/your-disk-name

find /Volumes/your-disk-name -type d -empty

Şimdi, findçıktıları silmek istiyorsanız , şunu ekleyin -delete:

find . -type d -empty -delete

Not: Bu onay istemez . Silinebileceği tüm dizinleri, yani silme izniniz olanları silecektir. Çöp kutusuna taşınmayacaklar ama sonsuza dek gidecekler. Kaldırma işleminden önce sorulmasını istiyorsanız, komutu aşağıdaki gibi değiştirin:

find . -type d -empty -exec rm -ri '{}' \;

Bana çıktı veriyor illegal option -- t typeve emptytanıyamıyor gibi görünüyor.
AsTeR

1
@AsTeR OS X sürümü findbir yol gerektirir, bu nedenle tekrar deneyin find . -type d, değil find -type d(ikincisi GNU için çalışır find).
slhck

6
Bu çalışırken, muhtemelen yalnızca gizli .DS_Store dosyalarını içeren klasörleri bulmaz, bu da onları teknik olarak boş olmayan, ancak kullanıcıya boş görünecek şekilde yapar. Bir kullanıcı boş görünen tüm klasörleri bulmak isterse , bir zamanlar Finder'da açmış olduğu klasörler bu şekilde bulunmaz, çünkü Finder bir .DS_Store dosyası ekleyecektir.
SuperTempel

Bu yüzden iki adımda yapmamız gerekebilir: önce .DS_Store dosyalarını kaldırın ( findyukarıdakiyle aynı şekilde yapılabilir ) ve ardından kalan boş dizinleri kaldırmak için önerilen komutu kullanın.
gerlos

6

Bunu daha iyi çözen küçük ve ücretsiz bir program yaptım:

http://www.macupdate.com/app/mac/52551/find-empty-folders

Bu programın avantajı, görünüşte boş olan ancak görünmez ".DS_Store" dosyasını içeren klasörleri de bulmasıdır.

Ayrıca, bulunan öğeleri hemen Çöp Kutusu'na taşımanıza da olanak tanır.


Simge dosyasını da işleyebiliyorsa iyi olur - superuser.com/questions/298785/icon-file-on-os-x-desktop
kenchew

@kenchew Bunu aradığına inanıyorumfind ~/Documents -type f -name 'Icon?' -print -delete;
JayRizzo

2

Bu çabayı ilerletmek için:

OCD'ye yol açtığım ve APP Aşırı Yüklendi ve basitlik gibi olmaktan yorulduğum için belgelerimi zaman zaman temizlemek için kullandığım bir komut dosyası oluşturdum.

Bunu alternatif bir çözüm geliştirmek ve sağlamak için yaptım.

Son olarak, @ kenche'nin Simge Dosyası için, klasör simgelerimi değiştirmediğim için mac'umda görünmüyor, ancak denetçide yapabilirsiniz. Bir resmi sol üst köşeye sürüklediğinizde Icon^M, o dizinde dosya oluşturulur .

Bunları da bulmak için şunları yapabilirsiniz:

(Yanlış pozitif bulma konusunda paranoyak olmanız gerekir mi? Yerine ctrl+ v ctrl+ mkullanın:)

find ~/Documents -type f -name 'Icon?' -print;
# and to remove 
find ~/Documents -type f -name 'Icon?' -print -delete;

ÖNEMLİ

Lütfen yukarıda belirtildiği gibi: Bazı hizmetlerin veya uygulamaların var olması için belirli dizinlere ihtiyacı olabilir. Bu aynı zamanda DS_Store & Icon dosyaları için de geçerlidir, LÜTFEN Ne yaptığınızın farkında olun. Ayrıca Not: Bu komut dosyası olmayacak onay ister. Tüm dizinleri siler. yani silme izniniz olan kişiler. Çöp kutusuna taşınmayacaklar ama sonsuza dek gidecekler.

BASH Script

#!/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;

Komut dosyasının sonu.

Komut dosyası GitHub'da görülebilir

Referanslar:

Mac'inizdeki dosyaları temsil eden simgeler hakkında

Yalnızca .DS_Store içeren tüm klasörleri özyinelemeli olarak kaldırmanın herhangi bir yolu var mı?

Yalnızca ".DS_Store" içeren klasörleri ve alt klasörleri bulun

Alt dizinler de dahil olmak üzere bir dizindeki tüm sıfır bayt dosyaları nasıl bulunur

Simge? OS X masaüstündeki dosya

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.