Bagaimana saya bisa menghapus folder kosong di Mac OS X?

Jawaban:

43

Pertama-tama perhatikan bahwa menghapus direktori kosong biasanya tidak diperlukan. Beberapa layanan atau aplikasi bahkan mungkin memerlukan direktori tertentu. Waspadai apa yang Anda lakukan.

Anda dapat membuat daftar folder kosong dengan find, ketika dijalankan dari Terminal.app:

find . -type d -empty

Secara default, finddaftar file dan folder, tetapi di sini, -type dmembatasi ke direktori, dan -emptyopsi hanya menampilkan direktori kosong. Ini akan berulang semua folder turun dari direktori home Anda ( atau pendek, ). Untuk memperluas ini ke seluruh sistem file Anda, gunakan:/Users/your-username/~

find / -type d -empty

Di sini, /menandakan akar sistem file Mac OS X Anda. Anda tentu saja dapat menggunakan titik awal lainnya juga, misalnya disk eksternal Anda terpasang di bawah ;/Volumes/your-disk-name

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

Sekarang, jika Anda ingin menghapus findoutput apa pun , cukup tambahkan -delete, seperti:

find . -type d -empty -delete

Catatan: Ini tidak akan meminta konfirmasi . Ini akan menghapus semua direktori yang bisa, yaitu direktori tempat Anda memiliki izin untuk dihapus. Mereka tidak akan dipindahkan ke tempat sampah tetapi pergi selamanya. Jika Anda ingin ditanya sebelum menghapus, ubah perintah menjadi seperti ini:

find . -type d -empty -exec rm -ri '{}' \;
slhck
sumber
Ini memberi saya keluaran illegal option -- t typedan emptysepertinya tidak bisa mengenali.
AsTeR
1
@ ASTeR Versi OS X findmembutuhkan lintasan, jadi coba lagi dengan find . -type d, bukan find -type d(yang terakhir berfungsi untuk GNU find).
slhck
6
Meskipun ini berfungsi, mungkin tidak menemukan folder yang hanya berisi file .DS_Store yang disembunyikan, membuatnya secara teknis tidak kosong tetapi tampak kosong bagi pengguna. Jika pengguna ingin menemukan semua folder yang tampak kosong, folder yang pernah dibuka di Finder tidak akan ditemukan dengan cara ini karena Finder akan menambahkan file .DS_Store.
SuperTempel
Jadi kita mungkin perlu melakukannya dalam dua langkah: pertama menghapus file .DS_Store (dapat dilakukan dengan menggunakan findcara yang sama seperti di atas), dan kemudian menggunakan perintah yang disarankan untuk menghapus direktori kosong yang tersisa.
gerlos
6

Saya telah membuat program kecil dan gratis yang memecahkan masalah ini dengan lebih baik:

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

Keuntungan dari program ini adalah ia juga menemukan folder yang tampaknya kosong tetapi berisi file ".DS_Store" yang tidak terlihat.

Dan itu juga memungkinkan Anda memindahkan barang yang ditemukan ke Sampah segera.

SuperTempel
sumber
Akan lebih baik jika dapat menangani file Ikon juga - superuser.com/questions/298785/icon-file-on-os-x-desktop
kenchew
@kenchew Saya yakin Anda mencari inifind ~/Documents -type f -name 'Icon?' -print -delete;
JayRizzo
2

Untuk melanjutkan upaya ini:

Saya membuat skrip yang saya gunakan untuk membersihkan folder dokumen saya dari waktu ke waktu, karena saya sedang menuju OCD dan lelah karena kelebihan muatan APP & suka kesederhanaan.

Saya membuat ini dalam upaya untuk meningkatkan & memberikan solusi alternatif.

Terakhir, untuk File Ikon @ kenche, yang sepertinya tidak ada di mac saya karena saya belum mengubah ikon folder saya, tetapi Anda bisa di inspektur. Setelah menyeret gambar ke kiri atas itu akan membuat Icon^Mfile pada direktori itu.

Untuk menemukannya juga Anda dapat menjalankan:

(Haruskah Anda menjadi paranoid jika menemukan false positive lalu gunakan: ctrl+ v ctrl+ malih-alih?)

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

PENTING

Silakan seperti @slhck yang dinyatakan di atas: Beberapa layanan atau aplikasi bahkan mungkin memerlukan direktori tertentu untuk ada. Ini juga berlaku untuk file DS_Store & Ikon, PLEASE Waspadai apa yang Anda lakukan. Juga Catatan: Skrip ini tidak akan meminta konfirmasi. Ini akan menghapus semua direktori yang ada. yaitu yang mana Anda memiliki izin untuk menghapus. Mereka tidak akan dipindahkan ke tempat sampah tetapi pergi selamanya.

Skrip 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;

Akhir skrip.

Script dapat dilihat di sini di GitHub

Referensi:

Tentang ikon yang mewakili file di Mac Anda

Adakah cara untuk menghapus semua folder yang hanya berisi .DS_Store secara rekursif?

Temukan folder & subfolder yang hanya berisi ".DS_Store"

Cara menemukan semua file nol-byte dalam direktori termasuk subdirektori

Ikon? file pada desktop OS X

JayRizzo
sumber