macOS 有一些系统级的配置技巧,可以提升日常使用和开发体验。

显示隐藏文件

macOS 默认隐藏所有以 . 开头的文件(dotfiles),比如 .gitignore.env 等配置文件。

方法对比

方法 适用场景 持久性
快捷键 Finder、文件对话框 临时
终端命令 全局设置 永久
ls 命令 仅终端查看 临时

快捷键切换(推荐)

在 Finder 或文件对话框中按 Command + Shift + . 即可快速切换显示/隐藏:

  • 再按一次恢复隐藏
  • 立即生效,无需重启
  • 最常用的方法

终端全局设置

显示所有隐藏文件

1
2
3
4
5
# 修改 Finder 设置
defaults write com.apple.finder AppleShowAllFiles -bool true

# 重启 Finder 使设置生效
killall Finder

恢复隐藏

1
2
3
4
5
# 恢复默认设置
defaults write com.apple.finder AppleShowAllFiles -bool false

# 重启 Finder
killall Finder

终端查看隐藏文件

如果只需要在终端查看,用 ls 命令即可:

1
2
3
4
5
# 显示所有文件(包括隐藏文件)
ls -la

# 或者不显示 . 和 ..
ls -A

让单个文件永久可见

情况 1:文件名以 . 开头

这种文件只能通过重命名去掉开头的点:

1
2
# 例如让 .env 文件可见
mv .env env

注意:这是 Unix 规则,chflags 命令无法改变这类文件的可见性。

情况 2:被隐藏标记隐藏

chflags 命令取消隐藏标记:

1
2
3
4
5
# 取消隐藏(-R 表示递归处理文件夹)
chflags -R nohidden /path/to/file

# 重新隐藏
chflags hidden /path/to/file

注意事项

开启全局显示后,会看到很多系统和应用的内部文件(如 .DS_Store.Trash 等),操作时注意别误删或修改这些文件


禁用 .DS_Store 文件

什么是 .DS_Store

.DS_Store (Desktop Services Store) 是 macOS 系统用来存储文件夹的自定义属性的隐藏文件,比如文件图标的位置、文件夹视图设置或背景图片。这个文件在本地使用没什么问题,但在网络共享、Git 仓库或 USB 设备中可能会造成困扰。

详细信息请参考: Wikipedia - .DS_Store

查询当前设置状态

在修改设置前,我们可以先查看当前的配置状态:

1
2
3
4
5
6
7
# 查询网络卷的 .DS_Store 禁用状态
defaults read com.apple.desktopservices DSDontWriteNetworkStores

# 查询 USB 设备的 .DS_Store 禁用状态
defaults read com.apple.desktopservices DSDontWriteUSBStores

# 如果返回 1 表示已禁用,0 或错误提示表示未禁用(默认)

禁用 .DS_Store 文件创建

禁用网络卷上的 .DS_Store

在网络共享文件夹(如 SMB、AFP、NFS)上禁用:

1
defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool true

禁用 USB 设备上的 .DS_Store

在外接 USB 存储设备上禁用:

1
defaults write com.apple.desktopservices DSDontWriteUSBStores -bool true

让设置生效

修改设置后需要重启 Finder:

1
killall Finder

注意:macOS 目前无法完全禁用本地磁盘上的 .DS_Store 文件创建,这是系统 Finder 正常工作所必需的。上述命令只对网络卷和 USB 设备有效。

清理现有的 .DS_Store 文件

清理特定目录

1
2
3
4
5
# 清理当前目录及子目录
find . -name ".DS_Store" -type f -delete

# 清理指定目录(将 /path/to/dir 替换为实际路径)
find /path/to/dir -name ".DS_Store" -type f -delete

清理整个系统(需谨慎)

1
2
3
4
5
# 清理整个用户目录
find ~ -name ".DS_Store" -type f -delete

# 清理整个系统(需要 sudo 权限,执行前请三思)
sudo find / -name ".DS_Store" -depth -exec rm {} \;

Git 仓库处理

如果你在使用 Git,建议将 .DS_Store 加入 .gitignore

1
echo ".DS_Store" >> .gitignore

已经提交到仓库的 .DS_Store 可以这样移除:

1
2
3
4
5
# 从 Git 索引中删除,但保留本地文件
find . -name .DS_Store -print0 | xargs -0 git rm -f --ignore-unmatch --cached

# 提交更改
git commit -m "Remove .DS_Store files"

恢复默认设置

如果想恢复 macOS 的默认行为(允许创建 .DS_Store):

1
2
3
4
5
6
7
8
# 恢复网络卷设置
defaults delete com.apple.desktopservices DSDontWriteNetworkStores

# 恢复 USB 设备设置
defaults delete com.apple.desktopservices DSDontWriteUSBStores

# 重启 Finder 使设置生效
killall Finder

适用版本

以上命令在 macOS 10.12 (Sierra) 及更高版本(包括最新的 macOS Sequoia 15.x)上均可正常使用。defaults 命令是 macOS 系统的标准配置工具,向后兼容性良好。

参考链接