Câu trả lời:
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 '{}' \;
illegal option -- t typevà emptydường như không thể nhận ra.
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).
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.
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.
find ~/Documents -type f -name 'Icon?' -print -delete;
Để 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;
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.
#!/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
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