在 Mac 上交接项目文件夹之前,请使用访达 (Finder) 确认正确的文件夹,并使用终端 (Terminal) 的 find 命令列出其下的空子文件夹。在决定如何处理之前,先在访达中检查每项结果:空目录可能是特意保留的,而且该命令仅报告运行当时为空的内容。此工作流程将删除和交接的决定权留给您。
什么是空子文件夹?
空目录不包含任何条目。包含另一个文件夹的文件夹并不是空的——即使该子文件夹本身为空。同样,仅包含隐藏文件的文件夹也不是空的。当项目包含占位目录、配置文件或特意留空以供他人存放工作成果的目标位置时,这种区别就非常重要。
访达提供了列表、分栏、图标和画廊视图来浏览和整理项目,但直观地浏览较深的文件夹树可能会很耗时。Apple 记录了这些访达视图和排序控制项;其访达指南并未介绍内置的“查找空子文件夹”搜索功能。终端的 find 实用工具是生成递归列表供检查的实用方法。Apple:在 Mac 上的“访达”中整理文件
在终端中运行只读扫描
首先,在访达中打开项目文件夹。要获取其路径,请右键点按该文件夹,按住 Option 键,然后选取将“[文件夹名称]”拷贝为路径名。Apple 记录了这种拷贝路径的方法,并说明路径中的空格可能需要加引号。Apple:在 Mac 上的“终端”中指定文件和文件夹
打开“终端”,键入 find (包含一个空格),粘贴拷贝的路径,然后追加 -mindepth 1 -type d -empty -print 并按 Return 键。完整的命令应如下所示,其中用您的实际文件夹路径替换示例内容:
find "/Users/yourname/Documents/Project Handoff" -mindepth 1 -type d -empty -print
这是一个列出条目的命令:它会输出匹配的路径,不会删除或移动它们。-type d 将匹配限制为目录,-empty 检查各目录是否为空,-print 显示其路径。-mindepth 1 会跳过起始文件夹本身,因此空的交接文件夹不会作为自身的子文件夹出现。FreeBSD find(1) 手册记录了这些谓词的含义;macOS 用户可以通过在终端中输入 man find 来查看本地命令参考。FreeBSD:find(1) 手册页
如果终端没有输出任何路径,则表示在扫描的目录树中未找到匹配的空子文件夹。如果输出了路径,请将其视为待审查列表,而非清理指令。扫描反映的是运行当时的文件夹内容;如果此时正在添加或同步文件,请等待活动结束后再运行一次,然后再进行交接。Apple 介绍了在终端中输入命令并按 Return 键运行它们的操作。Apple:在 Mac 上的“终端”中执行命令和运行工具
在更改任何内容前检查每项结果
从终端中拷贝一个路径,然后在访达中按 Command-Shift-G 打开“前往文件夹”,粘贴路径并按 Return 键。对照项目结构和交接要求检查文件夹的名称和位置。确认它是必需的占位符、特意留空的目标位置,还是单纯遗留的结构。如果该文件夹应该包含文件,请在判定该目录不必要之前,确认该文件可用且已保存。
该命令会检查目录内容,包括访达窗口当前可能未显示的隐藏条目。要在访达中检查隐藏项目,请在相关窗口中按 Command-Shift-句点;这将切换它们的显示状态。如果所谓的空文件夹中包含隐藏项目,它将不会出现在扫描结果中。避免仅仅为了让文件夹算作空文件夹而移除不熟悉的隐藏文件。
处理异常并完成交接检查
如果终端报告权限错误或无法读取部分目录树,则扫描可能不完整。请勿将其解读为无法访问的位置不包含空文件夹的证明。请确认您选择的是自己有权访问的文件夹,通过相应的所有者或管理员解决访问权限问题,然后重新运行扫描。避免扫描不相关的系统位置;将起始路径限制在要交接的文件夹内。
在处理完任何有意保留或不需要的空文件夹后,再次运行相同的命令并检查结果。如果按设计保留了空文件夹,请在交接说明中注明其用途,以便接收方了解。访达可以帮助您浏览层级结构并整理项目,而终端则提供递归的空目录列表;两者都无法替您判断项目意图。最终的检查是一项人为决策,取决于接收方的需求和文件夹的用途。
参考资料
在 Mac 上的“访达”中整理文件 — Apple 支持
在 Mac 上的“终端”中指定文件和文件夹 — Apple 支持
find(1) 手册页 — The FreeBSD Project
在 Mac 上的“终端”中执行命令和运行工具 — Apple 支持