ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

macOS显示隐藏文件全攻略:从访达快捷键到终端命令

macOS显示隐藏文件全攻略:从访达快捷键到终端命令 从 Windows 换到 Mac 的第一周几乎每个人都会被同一件事卡住明明文件就在硬盘里打开访达Finder却什么都看不见。苹果电脑上的隐藏文件到底怎么显示这个问题我被人问过不下二十次。问的人里有刚换 Mac 的普通用户也有写了好几年代码、一换系统就懵的程序员。其实 macOS 的隐藏文件机制并不复杂麻烦的是网上很多教程只给命令不给解释照着抄完还是一头雾水甚至有人为了找一个配置文件从此把“显示隐藏文件”永久打开结果整个桌面变得密密麻麻反而更找不到东西。这篇内容不打算只扔几个命令给你。我会把 macOS 隐藏文件背后的原理、常用的四种查看方式、每种方式的适用场景和副作用都讲清楚最后还会把我自己踩过的坑一并说出来。不管你是只想临时看一眼隐藏文件夹还是需要长期保持显示状态看完这篇应该都能直接上手不需要再四处搜。1. 隐藏文件其实是文件系统的一层“淡色外衣”1.1 点开头文件和另一种隐藏属性macOS 底层是类 Unix 系统而 Unix 世界有一套延续了几十年的老规矩文件名以英文句点.开头的文件或文件夹默认不在图形界面里显示。这就是“隐藏文件”最原始的来源Windows 用户往往很难理解这点因为在 Windows 里隐藏文件是文件属性的一种右键勾选就行但在 macOS 里一个文件是否隐藏往往只需要看它的名字是不是以点开头。举个例子你打开终端在家目录下执行ls看到的可能只有桌面、文稿、下载这些常规文件夹但执行ls -a或者ls -la的时候就会发现多了一堆名字带点的东西比如.zshrc、.gitconfig、.config这类的。除了“名字以点开头”macOS 还保留了另一种从 Unix 继承来的标志位机制文件的隐藏属性hidden flag。一个文件即使名字完全正常只要被设置了隐藏标志位访达里同样不会显示。你可以用命令给任意文件或文件夹添加或取消这个标志位这部分后面会有专门的章节讲。简单理解就是点开头是“默认隐藏”的第一层逻辑隐藏标志位是第二层逻辑。1.2 日常生活中最常见的隐藏文件都躲在哪儿平时你会碰到的隐藏文件其实也就那么几类。第一类是用户主目录下的各种配置文件。很多软件会把设置项存成点开头的文件比如 Git 全局配置.gitconfig、Shell 配置.zshrc、SSH 密钥目录.ssh还有不少命令行工具会生成.config目录。第二类是应用数据目录。最典型的就是用户主目录下的Library文件夹它承载了应用偏好设置、缓存、存档、登录状态等大量数据但这个文件夹默认也是隐藏的访达主目录里你直接看不到。第三类是系统中到处散布的辅助文件例如.DS_Store保存文件夹显示选项的元数据、.localized用于文件夹名称本地化显示等等。这类文件对普通用户没什么用但偶尔会因为各种原因出现在你的视线里。1.3 看到隐藏文件不代表就能随便动这里必须先把话说明白隐藏不等于不存在更不等于可以随意删除。很多时候你把自己的隐藏文件显示出来只是想找到其中某一个但屏幕上突然冒出成百上千个陌生文件这时候人的第一反应往往是“这些东西是不是垃圾要不要清理一下”。我在帮朋友处理电脑时不止一次看到有人动了~/Library下的文件夹导致应用配置丢失、需要重新登录账号甚至缓存清理过头让软件变得不稳定。macOS 从 Catalina 版本开始把系统卷设计成了只读还在系统层面用 SIPSystem Integrity Protection系统完整性保护机制做了加固普通权限下你连系统目录里的文件都删不动。但这不代表你可以对用户目录下的隐藏文件为所欲为~/Library里的东西删错了照样会出问题。所以先有个心理预期查看隐藏文件是安全的但当你看到它们之后请管住手。2. 最顺手的方式访达里的一对快捷键2.1 Command Shift . 怎么按按完会发生什么想最快看到隐藏文件不需要打开终端也不需要改任何系统设置。你只要打开任意一个访达窗口然后按下这三个键Command⌘ Shift 句号键.。按下之后当前访达窗口里所有隐藏文件和隐藏文件夹会立刻冒出来。它们和普通文件混在一起只是名字以点开头部分文件还会带一点半透明的视觉效果。再按一次同样的组合键隐藏文件就会重新消失。这个快捷键最让我喜欢的地方在于它是一个临时开关不会写入任何系统配置文件。也就是说你只是想临时瞄一眼某个隐藏目录按一下快捷键看完再按一下收回去系统本身的状态还是原来的默认状态不需要担心留下什么后遗症。实测在目前主流的 macOS 版本上包括 Ventura、Sonoma、Sequoia这个组合键都稳定生效属于老牌且靠谱的功能。2.2 在“打开/保存”对话框里同样有效很多人没用过的一招Command Shift . 在应用的“打开文件”“保存文件”对话框中同样有效。举个例子你写了一个小脚本配置信息放在项目目录下的.env文件里。你在代码编辑器里执行“打开项目”文件列表里是看不到.env的这时候按一下 Command Shift .那个不起眼的点开头文件就出现了。同理如果你想把某个配置文件备份一下在“导出”对话框里它同样能切换显示。这个细节在官方帮助文档里其实写得并不显眼我也是偶然试出来的。对于依赖隐藏文件进行配置的开发者来说这个小技巧在“保存”“另存为”场景里能节省不少时间。2.3 为什么这是最推荐的临时方案很多人一搜“macOS 显示隐藏文件”搜出来的全是终端命令好像不开终端就解决不了问题。但实际上对于绝大多数普通用户而言快捷键已经够用了。原因有三个。第一它零门槛。不需要记忆任何命令不需要理解defaults是什么按一下是一按两下是二。第二它无副作用。终端命令修改的是 Finder 的全局配置改完之后整个系统都会一直保持“显示隐藏文件”的状态。而快捷键只是临时视图切换下次重启访达或者重启电脑系统依然是你熟悉的默认状态。第三它内置且免费。系统自带的文件管理器直接支持不需要安装插件也不需要打开什么隐藏设置面板。所以我的建议是如果你只是偶尔需要看一眼隐藏文件直接把这一招用熟就够了别去碰后面的终端命令。3. 不改变视图直接“跳”到隐藏路径里3.1 前往文件夹的正确打开方式有时候你想要的根本不是“看到所有隐藏文件”而是“快速进入某个具体的隐藏文件夹”比如用户主目录下的Library或者.ssh密钥目录。这种情况下比起把所有隐藏文件都显示出来用访达的“前往文件夹”功能更干脆。操作方法在访达窗口里按Command Shift G会弹出一个输入框直接输入路径回车就能跳转。你不需要先显示隐藏文件也不需要层层点目录只要你输入的是真实存在的路径访达会直接把你带到那个位置。这里有个小细节值得解释一下输入路径的时候可以使用波浪号~代替当前用户的主目录。比如当前用户名是zhangsan那~/.ssh就等于/Users/zhangsan/.ssh。我见过不少人对这个符号不熟悉以为是随便写写的其实它是个非常实用的路径缩写。3.2 常用隐藏路径速查表我整理了普通人最常需要访问的几个隐藏路径方便你直接参考路径里面是什么典型使用场景~/Library当前用户的应用数据、偏好设置、缓存、存档清理单个应用缓存、备份应用配置~/.sshSSH 密钥文件配置 Git 远程仓库、登录服务器~/.zshrc终端 Shell 的配置文件自定义 terminal 提示符、别名~/.gitconfigGit 全局配置修改用户名、邮箱、代理设置~/.config许多命令行工具或编辑器存放配置的目录找回某个工具的设置~/Library/Application Support各大应用真正的数据目录备份或迁移软件数据其中被问得最多的就是~/Library它在老版本 macOS 里偶尔还能在访达主目录中看到现在基本默认不显示。你只要记住 Command Shift G输入~/Library回车一下就能进去。3.3 实战帮同事找 .nvm 的完整过程有一次同事跟我说他电脑里装了很多 Node.js 版本但找不到 nvm 的安装目录。我远程指导他的过程是这样的先让他打开终端执行echo $NVM_DIR结果输出/Users/用户名/.nvm证明 nvm 装在用户主目录下的隐藏.nvm文件夹里。然后我让他打开访达按 Command Shift G 输入~/.nvm回车后就看到了整个 nvm 目录结构。如果他当时去访达主目录里一格一格找是绝对找不到.nvm的。因为他看到的是图形界面里“经过过滤”的目录树而不是磁盘上真实的目录结构。这就是“前往文件夹”最大的意义它不关心这个文件是不是隐藏的只认路径。4. 让所有隐藏文件一直可见终端的 defaults 写入4.1 两条命令搞定全局显示与还原如果你工作性质特殊需要长时间保持“所有隐藏文件都显示”的状态比如每天都在跟各种配置文件打交道那快捷键每次都要按就显得繁琐了。这时候可以用终端命令把“显示隐藏文件”写入访达的偏好设置让系统记住你的选择。打开终端Terminal执行下面这两条命令defaults write com.apple.finder AppleShowAllFiles -bool true killall Finder执行完之后访达会自动重启所有窗口里的隐藏文件都会直接显示。想恢复成原来的默认状态也很简单defaults write com.apple.finder AppleShowAllFiles -bool false killall Finder这两条命令的区别在于前面那个true表示“显示”后面那个false表示“不显示”。注意这里的com.apple.finder是访达在系统偏好设置数据库里的注册名AppleShowAllFiles是控制是否显示隐藏文件的开关字段。理解了这一点你就不会把命令记混了。我个人的习惯是在终端里经常用一个更“彻底”的还原方式直接删掉这个偏好设置键让系统恢复完全出厂的状态defaults delete com.apple.finder AppleShowAllFiles killall Finder如果你之前执行过true或false这一条命令会把相关设置彻底清掉一切回到系统默认。4.2 killall Finder 到底在干什么很多第一次接触这是命令的朋友都会问killall Finder不是把访达杀掉了吗会不会丢文件放心killall Finder的意思是“请求访达进程退出并重新启动”不是“删除访达软件”。Finder 是 macOS 的图形界面壳层它退出后会被系统自动拉起来。你的桌面壁纸、打开的窗口、正在进行的文件拷贝一般不会因此丢失只是窗口会重新出现访达重新读取一遍偏好设置。这里有一个关键点改了defaults之后如果不执行killall Finder生效时间会不确定有时候要等很久有些人甚至以为命令没生效。所以网上几乎所有教程都会把这两条命令连在一起写。你照着执行就行不用觉得killall这个名字看起来吓人。4.3 修改后没生效从这几个地方查有几次我在帮网友排查问题发现命令敲了、也重启访达了但隐藏文件还是不显示。总结下来常见原因就三个。第一拼写错误。com.apple.finder这个注册名大小写很敏感首字母要大写单词之间不能有空格。很多人复制粘贴时漏掉了某个字母命令自然没效果。第二忘了killall Finder。如果只改了defaults不重启访达当前运行的访达进程可能还持有旧配置不重读配置自然不生效。第三某些目录不一定在访达窗口中。比如你打开的是 iCloud 云盘某个同步目录它可能和本地的隐藏文件显示逻辑不完全一致或者你正在看的是某个网络磁盘的挂载卷也有自己的显示策略。我的排查建议是执行完命令后先打开访达的“个人收藏”栏里的主目录看主目录下有没有显示.zshrc或.config如果显示了就说明全局生效了如果还是没有再用defaults read com.apple.finder AppleShowAllFiles这条命令检查一下写入结果看看返回值到底是1还是0这样能快速定位问题出在写入阶段还是重启阶段。5. 给单个文件或文件夹加“隐藏”属性chflags 的玩法5.1 chflags hidden 和 nohidden 的基本用法除了系统默认隐藏点开头文件之外macOS 还允许你手动指定某个文件或文件夹是否隐藏这个功能在文件层级上生效用的是chflags命令。比如我想把桌面上的一个文件夹“藏起来”可以在终端里执行chflags hidden ~/Desktop/我的演示文件夹执行完你切回访达一看这个文件夹就消失了。它不是被删除了只是被标记成了隐藏。想让它回来就执行chflags nohidden ~/Desktop/我的演示文件夹你可以用ls -lO命令查看文件的隐藏标志位其中带hidden标记的就是被手动隐藏的项ls -lO ~/Desktop我之所以把这条命令也放进这篇文章是因为很多人容易把“全局显示隐藏文件”和“手动隐藏单个文件”搞混。前者控制访达要不要把系统里所有隐藏文件显示出来后者决定某个文件自己要不要带隐藏属性。两者同时存在的情况下即使你把访达的全局显示开关打开了被chflags hidden标记的项有时看起来也是另一副样子通常接近半透明因为标志位仍在生效。5.2 这种隐藏方式的典型使用场景chflags适合什么场景第一种想给桌面“减负”。比如你桌面上有一堆项目文件夹暂时不用又不想删也不想让它们占据视觉空间就可以用chflags hidden把某个文件夹藏掉以后想用的时候再放出来。第二种不想在给别人演示屏幕的时候被看到某个东西。比如开会共享屏幕桌面上有些个人文件夹不想被同事看到手动隐藏一下就能让桌面干净很多。第三种单次针对某个特定文件。全局显示隐藏文件会影响所有文件夹而chflags只作用于你指定的那些项目影响范围小得多。5.3 几个我见过的翻车现场这里必须提醒几个常见的坑。第一个坑对系统目录执行 chflags hidden。有人为了让桌面干净直接对/System或者/Library执行了chflags hidden结果导致部分系统操作界面显示异常排查半天才发现是这个命令惹的祸。这种操作不仅风险高在开启了 SIP 的环境下还常常被系统直接拒绝。第二个坑隐藏了重要文件夹后自己也忘了。尤其是那些名字不带点的文件夹一旦被隐藏既不会以点开头也不会出现在隐藏文件列表里很多人过了半个月找不到了还以为是自己误删了。我的建议是使用chflags hidden之前先用文本文件或者备忘录记下来免得事后自己都忘了藏过什么东西。第三个坑把“隐藏”当成“加密”。chflags hidden只是让它在访达中不可见懂命令的人一条ls -la或者chflags nohidden就能轻松解除。想保护隐私还是要用磁盘加密或者文件加密工具不要指望这个标志位能提供安全保护。6. 我这些年踩过的坑以及最终推荐的做法6.1 开显示后千万别顺手删“看起来没用”的文件启用“显示所有隐藏文件”功能后原本干净的文件夹里会突然冒出很多陌生的东西比如.DS_Store、.localized、.Trash这一类的。很多人的第一反应是“这些应该是没用的垃圾文件删了能让磁盘更干净”。真不是这样。.DS_Store是 Finder 用来保存目录视图设置的元数据文件删了顶多是文件夹的排序和显示方式重置一下不算大问题。但如果你是沿着隐藏文件一路删到~/Library/Application Support里把某个应用的数据目录当作垃圾清掉了那么那个应用大概率会“失忆”重新变成首次安装的状态聊天记录、登录状态、本地配置统统没找回来。如果你真的觉得系统存储空间被占得很厉害我的建议是在“系统设置 - 通用 - 存储空间”里看类别分布别去隐藏文件堆里手动挖。隐藏文件里有价值的信息和冗余文件混在一起只靠肉眼区分风险很高。6.2 重装、升级、迁移电脑后隐藏文件设置会“重置”不少人在网上搜“macOS 重装”“镜像”之类的内容其实就是因为重装系统后发现自己的文件还在但看不到了。这不是文件丢了而是默认的隐藏文件显示状态回来了。无论你之前是用快捷键临时看还是用defaults write com.apple.finder AppleShowAllFiles -bool true改过全局配置重装系统后或者迁移到新电脑之后这些配置都可能被重置为系统默认。遇到这种情况不需要慌张文件都还在磁盘上你只需要按照这篇文章里的方法把显示隐藏文件的方式重新打开就行。另外如果升级大版本后突然发现某个文件夹里的文件看起来变少了也建议先想一想是不是隐藏显示被重置了而不是急着找人恢复数据。6.3 最终推荐不同人群适合哪种方式我根据这几年接触到的人把使用场景和推荐方式做了一个对照帮你看完能直接对号入座你的情况推荐方式理由偶尔找一下隐藏文件不想折腾访达里按 Command Shift .临时切换无副作用知道路径但不知道如何到达前往文件夹按 Command Shift G不关心隐藏状态直接跳转开发、运维每天都在看配置文件终端里多用ls -la需要图形界面时用前往文件夹效率最高信息最全确实需要所有隐藏文件长期可见终端里执行defaults write ... -bool true并配killall Finder一次性设置重启后依然生效想让某个单独文件夹消失chflags hidden加在目标上只影响目标不改变系统全局6.4 一个小技巧在终端里顺手看隐藏文件如果你想很快确认某个隐藏文件存不存在又不想切回访达终端里一条命令就够ls -la ~这会在用户主目录下列出所有常规文件和隐藏文件。或者列出指定目录ls -la ~/Desktop要在访问文件系统这件事上做到心中有数我最常用的其实是“终端ls -la 访达快捷键”的组合拳。终端负责快速确认路径和文件名访达负责在图形界面里进行拖拽、复制、重命名这类操作两者互补效率很高。就我自己这么多年的使用习惯来说日常 90% 的情况靠Command Shift .就能解决剩下 10% 是访问明确路径的场景我会用前往文件夹直接跳转。至于把隐藏文件永久显示出来我反而很少开因为长期开着会让文件夹显得很杂乱尤其是在多人共用一台电脑的场景下更容易引发误操作。最后再提醒一句能看见不等于能删动手之前先确认这个文件到底是谁生成的你会发现 Mac 上那些“凭空消失”的文件其实一直都好端端地待在那里。
返回列表