Làm cách nào để xóa các thư mục trống trong Mac OS X?


Câu trả lời:


43

Trước hết lưu ý rằng việc xóa các thư mục trống thường không cần thiết. Một số dịch vụ hoặc ứng dụng thậm chí có thể cần một số thư mục nhất định để tồn tại. Hãy nhận biết những gì bạn đang làm.

Bạn có thể liệt kê các thư mục trống với find, khi chạy từ Terminal.app:

find . -type d -empty

Theo mặc định findliệt kê các tệp và thư mục, nhưng ở đây, -type dgiới hạn nó vào các thư mục và -emptytùy chọn chỉ hiển thị các thư mục trống. Điều này sẽ lặp lại tất cả các thư mục giảm dần từ thư mục chính của bạn ( hoặc ngắn, ). Để mở rộng điều này đến toàn bộ hệ thống tập tin của bạn, hãy sử dụng:/Users/your-username/~

find / -type d -empty

Ở đây, /biểu thị gốc của hệ thống tệp Mac OS X của bạn. Tất nhiên bạn cũng có thể sử dụng bất kỳ điểm bắt đầu nào khác, ví dụ như đĩa bên ngoài của bạn được gắn bên dưới ;/Volumes/your-disk-name

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

Bây giờ, nếu bạn muốn xóa bất kỳ findđầu ra nào, chỉ cần nối thêm -delete, như vậy:

find . -type d -empty -delete

Lưu ý: Điều này sẽ không yêu cầu xác nhận . Nó sẽ xóa tất cả các thư mục có thể, tức là những thư mục mà bạn có quyền xóa. Họ sẽ không được chuyển đến thùng rác mà đi mãi mãi. Nếu bạn muốn được hỏi trước khi gỡ bỏ, hãy thay đổi lệnh thành một cái gì đó như sau:

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

Nó cho tôi đầu ra illegal option -- t typeemptydường như không thể nhận ra.
AsTeR

1
@AsTeR Phiên bản OS X findyêu cầu một đường dẫn, vì vậy hãy thử lại find . -type d, không find -type d(phiên bản sau hoạt động với GNU find).
slhck

6
Trong khi điều này hoạt động, nó có thể không định vị các thư mục chỉ chứa các tệp .DS_Store ẩn, làm cho chúng không trống về mặt kỹ thuật nhưng xuất hiện trống đối với người dùng. Nếu người dùng muốn tìm tất cả các thư mục có vẻ trống rỗng, những thư mục mà anh ta đã mở trong Finder sẽ không được tìm thấy theo cách này vì Finder sẽ thêm tệp .DS_Store.
SuperTempel

Vì vậy, chúng tôi có thể cần thực hiện theo hai bước: đầu tiên xóa các tệp .DS_Store (có thể được thực hiện bằng cách sử dụng findtheo cách tương tự như trên), sau đó sử dụng lệnh được đề xuất để xóa các thư mục trống còn lại.
gerlos

6

Tôi đã thực hiện một chương trình nhỏ và miễn phí để giải quyết vấn đề này tốt hơn:

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

Ưu điểm của chương trình này là nó cũng tìm thấy các thư mục rõ ràng trống nhưng chứa tệp ".DS_Store" vô hình.

Và nó cũng cho phép bạn di chuyển các vật phẩm tìm thấy vào Thùng rác ngay lập tức.


Sẽ rất tốt nếu nó cũng có thể xử lý tệp Biểu tượng - superuser.com/questions/298785/icon-file-on-os-x-desktop
kenchew

@kenchew Tôi tin rằng bạn đang tìm kiếm điều nàyfind ~/Documents -type f -name 'Icon?' -print -delete;
JayRizzo

2

Để tiếp tục nỗ lực này:

Thỉnh thoảng tôi đã tạo một tập lệnh mà tôi sử dụng để dọn dẹp thư mục tài liệu của mình, vì tôi đang đến OCD và mệt mỏi vì bị quá tải & đơn giản như APP.

Tôi đã thực hiện điều này trong một nỗ lực để cải thiện và cung cấp một giải pháp thay thế.

Cuối cùng, đối với Tệp biểu tượng của @ kenche, dường như không tồn tại trên máy Mac của tôi vì tôi chưa sửa đổi các biểu tượng thư mục của mình, nhưng bạn có thể trong trình kiểm tra. Khi kéo một hình ảnh lên trên cùng bên trái, nó sẽ tạo Icon^Mtập tin trên thư mục đó.

Để tìm những thứ đó, bạn có thể chạy:

(Bạn có nên hoang tưởng về việc nếu tìm thấy dương tính giả thì hãy sử dụng: ctrl+ v ctrl+ mthay vì?)

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

QUAN TRỌNG

Xin vui lòng như @slhck đã nêu ở trên: Một số dịch vụ hoặc ứng dụng thậm chí có thể cần một số thư mục nhất định để tồn tại. Điều này cũng áp dụng cho các tệp DS_Store & Icon, xin vui lòng lưu ý về những gì bạn đang làm. Cũng lưu ý: Kịch bản này sẽ không yêu cầu xác nhận. Nó sẽ xóa tất cả các thư mục nó có thể. tức là những người mà bạn có quyền xóa. Họ sẽ không được chuyển đến thùng rác mà đi mãi mãi.

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;

Kết thúc kịch bản.

Script có thể được nhìn thấy ở đây trên GitHub

Tài liệu tham khảo:

Giới thiệu về các biểu tượng đại diện cho các tệp trên máy Mac của bạn

Có cách nào để xóa tất cả các thư mục chỉ chứa .DS_Store đệ quy không?

Tìm thư mục và thư mục con chỉ chứa ".DS_Store"

Cách tìm tất cả các tệp 0 byte trong một thư mục bao gồm các thư mục con

Biểu tượng? tập tin trên máy tính để bàn OS X

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.