ฉันจะลบโฟลเดอร์ว่างใน Mac OS X ได้อย่างไร


คำตอบ:


43

ก่อนอื่นให้ทราบว่าการลบไดเรกทอรีว่างมักไม่จำเป็น บริการหรือแอปพลิเคชั่นบางอย่างอาจจำเป็นต้องมีไดเรกทอรีที่แน่นอนอยู่ ระวังสิ่งที่คุณกำลังทำ

คุณสามารถแสดงรายการโฟลเดอร์ว่างด้วยfindเมื่อเรียกใช้จาก Terminal.app:

find . -type d -empty

ตามค่าเริ่มต้นfindจะแสดงรายการไฟล์และโฟลเดอร์ แต่ที่นี่-type dจะ จำกัด ไว้เฉพาะไดเรกทอรีและ-emptyตัวเลือกจะแสดงเฉพาะไดเรกทอรีที่ว่างเปล่า สิ่งนี้จะทำให้โฟลเดอร์ทั้งหมดหล่นลงมาจากโฮมไดเร็กตอรี่ของคุณ ( หรือย่อ, ) ในการขยายสิ่งนี้ไปยังระบบไฟล์ทั้งหมดของคุณให้ใช้:/Users/your-username/~

find / -type d -empty

นี่/หมายถึงรากของระบบไฟล์ Mac OS X ของคุณ แน่นอนคุณสามารถใช้จุดเริ่มต้นอื่นเช่นกันเช่นดิสก์ภายนอกของคุณติดตั้งอยู่ใต้;/Volumes/your-disk-name

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

ตอนนี้ถ้าคุณต้องการที่จะลบสิ่งที่findเอาท์พุทเพียงแค่ผนวก-deleteเช่น:

find . -type d -empty -delete

หมายเหตุ: นี้จะไม่ขอยืนยัน มันจะลบไดเรกทอรีทั้งหมดที่สามารถทำได้เช่นไดเรกทอรีที่คุณมีสิทธิ์ลบ พวกเขาจะไม่ถูกย้ายไปที่ถังขยะ แต่ไปตลอดกาล หากคุณต้องการได้รับการถามก่อนที่จะลบเปลี่ยนคำสั่งเป็นสิ่งที่ดังต่อไปนี้:

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

มันให้ผลลัพธ์กับฉันillegal option -- t typeและemptyดูเหมือนจะไม่สามารถจดจำได้
AsTeR

1
@AsTeR เวอร์ชัน OS X findต้องการพา ธ ดังนั้นลองอีกครั้งด้วยfind . -type dไม่ใช่find -type d( เวอร์ชั่นหลังใช้งานได้กับ GNU find)
slhck

6
ในขณะที่ใช้งานได้อาจไม่พบโฟลเดอร์ที่มีไฟล์. DS_Store ที่ซ่อนอยู่เท่านั้นซึ่งทำให้พวกเขามีเทคนิคที่ไม่ว่างเปล่า แต่ปรากฏว่าว่างเปล่าสำหรับผู้ใช้ หากผู้ใช้ต้องการที่จะหาโฟลเดอร์ทั้งหมดที่ปรากฏที่ว่างเปล่า, คนที่เขาเคยเปิดใน Finder จะไม่ได้พบวิธีนี้เพราะการค้นหาจะมีการเพิ่มไฟล์ .DS_Store
SuperTempel

ดังนั้นเราอาจต้องทำในสองขั้นตอน: ขั้นแรกให้ลบไฟล์. DS_Store (สามารถทำได้โดยใช้findวิธีที่คล้ายกันข้างต้น) จากนั้นใช้คำสั่งที่แนะนำเพื่อลบไดเรกทอรีว่างที่เหลืออยู่
gerlos

6

ฉันได้ทำโปรแกรมขนาดเล็กและฟรีที่แก้ปัญหานี้ได้ดีกว่า:

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

ข้อดีของโปรแกรมนี้คือมันยังค้นหาโฟลเดอร์ที่ว่างเปล่า แต่มีไฟล์ ".DS_Store" ที่มองไม่เห็น

และยังช่วยให้คุณย้ายรายการที่พบไปยังถังขยะได้ทันที


คงจะดีถ้ามันสามารถจัดการไฟล์ไอคอนได้เช่นกัน - superuser.com/questions/298785/icon-file-on-os-x-desktop
kenchew

@kenchew ฉันเชื่อว่าคุณกำลังมองหาสิ่งนี้find ~/Documents -type f -name 'Icon?' -print -delete;
JayRizzo

2

เพื่อเพิ่มเติมความพยายามนี้:

ฉันสร้างสคริปต์ที่ใช้ในการทำความสะอาดโฟลเดอร์เอกสารของฉันเป็นครั้งคราวเนื่องจากฉันไปถึง OCD และเบื่อที่จะต้องเป็นแอปที่โอเวอร์โหลดและเรียบง่าย

ฉันทำสิ่งนี้เพื่อพยายามปรับปรุงและนำเสนอทางเลือกอื่น

สุดท้ายนี้สำหรับไฟล์ไอคอนของ @ kenche ดูเหมือนจะไม่มีอยู่ในเครื่อง mac ของฉันเพราะฉันยังไม่ได้แก้ไขไอคอนโฟลเดอร์ของฉัน แต่คุณสามารถทำได้ในสารวัตร เมื่อลากรูปภาพไปทางซ้ายบนมันจะสร้างIcon^Mไฟล์ในไดเรกทอรีนั้น

ในการค้นหาสิ่งเหล่านั้นคุณสามารถเรียกใช้:

(คุณควรหวาดระแวงว่าการหาผลบวกเป็นเท็จนั้นให้ใช้: ctrl+ v ctrl+ mแทนที่จะเป็น?)

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

สิ่งสำคัญ

โปรดตามที่ @slhck ระบุไว้ข้างต้น: บริการหรือแอปพลิเคชั่นบางอย่างอาจจำเป็นต้องมีไดเรกทอรีที่แน่นอนอยู่ นอกจากนี้ยังใช้กับไฟล์ DS_Store และไอคอนโปรดระวังสิ่งที่คุณกำลังทำ หมายเหตุเพิ่มเติม: สคริปต์นี้จะไม่ขอการยืนยัน มันจะลบไดเรกทอรีทั้งหมดที่สามารถทำได้ เช่นคนที่คุณมีสิทธิ์ในการลบ พวกเขาจะไม่ถูกย้ายไปที่ถังขยะ แต่ไปตลอดกาล

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;

จุดสิ้นสุดของสคริปต์

สคริปต์สามารถดูได้ที่นี่ใน GitHub

อ้างอิง:

เกี่ยวกับไอคอนที่แสดงถึงไฟล์ใน Mac ของคุณ

มีวิธีใดที่จะลบโฟลเดอร์ทั้งหมดที่มีเพียง. DS_Store ซ้ำ ๆ

ค้นหาโฟลเดอร์ & โฟลเดอร์ย่อยที่มีเฉพาะ ".DS_Store"

วิธีค้นหาไฟล์ zero-byte ทั้งหมดในไดเรกทอรีรวมถึงไดเรกทอรีย่อย

ไอคอน? ไฟล์บนเดสก์ท็อป OS X

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.