如何在 Mac 上显示或隐藏多个文件的文件扩展名?

如何在 Mac 上显示或隐藏多个文件的文件扩展名?

这个问题的变体几乎总是描述一个繁琐的“获取信息”过程,一次选中或取消选中“隐藏扩展名”,或者使用锤子方法,使用 Finder -> 首选项 -> 高级 -> 显示所有文件扩展名。我找到了一种一次性处理一批文件的方法,使用 Terminal.app 和单个命令行。

您需要名为“SetFile”的 Developer 实用程序。如果 /Developer/Tools 中有该实用程序,则在您的 $PATH 上为其创建别名 (ln -s),或将其路径添加到您的 $PATH。现在,每个文件都有“属性”,您可以使用配套实用程序“GetFileInfo”查看这些属性。这些是字母,可以是大写字母,也可以是小写字母。“E”和“e”表示“隐藏”或“显示”扩展名。您可以使用 SetFile 轻松地在它们之间切换。但您也可以将一组文件名输入到 SetFile 中,然后使用一个命令行完成所有操作。这是一个简单的例子:

我有一堆 .doc (MS Word) 文档,有些显示扩展名,有些隐藏扩展名。我希望所有文档都显示扩展名。假设它们位于某个文件夹中。导航到该文件夹​​,然后执行以下操作:

 ls -1 *.doc | tr " " "?" | xargs -L1 SetFile -a 

-1 为文件夹中的每个文件名提供所需的扩展名。“tr”命令将文件名中的空格转换为“?”,即单个匹配字符,因此名称中没有空格。然后“xargs -L1”将每个名称提供给“SetFile -a e”,表示“显示”该文件的扩展名。如果已经显示,则保持这种状态。

SetFile 可能不喜欢名称中包含“?”,但它肯定不喜欢名称中包含空格,除非 SetFile 的文件参数用引号引起来。不幸的是,“xargs”会将包含空格的名称拆分为 SetFile 的单独执行,这更糟糕。

最后,如果您想“隐藏”所有扩展,请使用“SetFile -a E”。

相关内容