我想删除外部磁盘上的所有空文件夹。我该怎么做?
答案1
首先请注意,删除空目录通常没有必要。某些服务或应用程序甚至可能需要某些目录存在。请注意您正在做什么。
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 '{}' \;
答案2
为了进一步努力:
我创建了一个脚本,用来不时清理我的文档文件夹,因为我有强迫症,厌倦了 APP 超载并且喜欢简单。
我这样做是为了改进并提供替代解决方案。
最后,对于@kenche 的图标文件,由于我没有修改文件夹图标,因此我的 Mac 上似乎不存在该文件,但您可以在检查器中修改。将图片拖到左上角后,它将Icon^M
在该目录中创建文件。
要找到这些,您可以运行:
(如果您对发现假阳性感到偏执,那么使用:++ctrl而不是?)v ctrlm
find ~/Documents -type f -name 'Icon?' -print;
# and to remove
find ~/Documents -type f -name 'Icon?' -print -delete;
重要的
正如@slhck 上面所述:某些服务或应用程序甚至可能需要某些目录存在。这也适用于 DS_Store 和 Icon 文件,请注意你在做什么。另请注意:此脚本将不会要求确认。它将删除所有可以删除的目录。即您有权删除的目录。它们不会被移到垃圾箱,而是永远消失。
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 -print;
# =============================================================================
# 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 -print;
echo 'Removing ZERO file sized files...'
find ~/Documents -type f -empty -delete -print;
# =============================================================================
# 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 -print;
echo 'Deleting result of empty folders...'
find ~/Documents -type d -empty -delete -print;
echo 'Showcasing the removal of said, 'empty folders'...'
find ~/Documents -type d -empty;
脚本结束。