chflags hidden参数如何隐藏文件?

99ANYc3cd6
预计阅读时长 10 分钟
位置: 首页 参数 正文

核心概念

chflags hidden 是一个在 macOS 和其他基于 BSD 的系统(如 FreeBSD)中使用的命令,它的作用是为文件或目录设置一个“隐藏”标志位

chflags hidden 参数
(图片来源网络,侵删)

这个命令会告诉系统:“请把这个文件或文件夹标记为隐藏的”。


命令详解

命令格式

chflags hidden <文件或路径>

参数说明

  • chflags: 这是 "change flags"(更改标志位)的缩写,它是用来修改文件系统标志位的命令。
  • hidden: 这是你要设置的标志位名称,代表“隐藏”。
  • <文件或路径>: 你想要隐藏的文件或文件夹的路径。

常用选项

  • -R--recursive: 递归操作,如果对一个目录使用此选项,则会将该目录下的所有文件和子目录都设置为隐藏状态。
    # 隐藏一个目录及其所有内容
    chflags -R hidden /path/to/your/folder

chflags hidden 的实际效果

当你使用 chflags hidden 隐藏一个文件后,会发生什么?

  1. 在图形用户界面 中:

    • 在 macOS 的 Finder(访达) 中,默认情况下,被 chflags hidden 隐藏的文件和文件夹会消失,就像它们被删除了一样,但它们实际上仍然存在于原位置。
    • 这与 Windows 中通过设置“隐藏”属性后文件变为半透明显示的效果不同,macOS 的默认行为是直接隐藏。
  2. 在命令行终端 中:

    chflags hidden 参数
    (图片来源网络,侵删)
    • 默认情况下,ls 命令不会显示带有 hidden 标志位的文件。
    • 你需要使用 ls 命令的特殊选项才能看到它们:
      • ls -O: 显示文件的标志位。
      • ls -la: 显示所有文件(包括隐藏文件),但 chflags hidden 的文件通常还是会在这里被隐藏。
      • ls -lao: 这是最常用的组合,它会列出所有文件,并显示它们的标志位。

    示例:

    # 创建一个测试文件
    touch test_file.txt
    # 查看文件列表(默认看不到标志位)
    ls -l
    # 输出: -rw-r--r--  1 user  staff    0 Oct 26 10:00 test_file.txt
    # 使用 chflags hidden 隐藏文件
    chflags hidden test_file.txt
    # 再次查看文件列表,文件不见了
    ls -l
    # (没有输出)
    # 使用 ls -lao 查看所有文件和标志位
    ls -lao
    # 输出: hidden --------------  1 user  staff    0 Oct 26 10:00 test_file.txt
    # 你可以看到 "hidden" 这个标志位已经被标记上了。

如何取消隐藏?

要取消隐藏,你需要使用 chflags nohidden 命令。

# 取消单个文件的隐藏
chflags nohidden <文件或路径>
# 递归取消一个目录及其所有内容的隐藏
chflags -R nohidden /path/to/your/folder

示例:

# 取消 test_file.txt 的隐藏
chflags nohidden test_file.txt
# 再次使用 ls -lao 查看
ls -lao
# 输出: -rw-r--r--  1 user  staff    0 Oct 26 10:00 test_file.txt
# "hidden" 标志位消失了,文件在 Finder 中也重新出现了。

与 开头的隐藏文件的区别

这是一个非常重要的区别,也是很多 macOS 新手容易混淆的地方。

chflags hidden 参数
(图片来源网络,侵删)
特性 chflags hidden 开头的文件 (如 .bash_profile)
机制 文件系统标志位 文件名约定
系统 macOS, BSD Linux, macOS, Unix 等(通用)
Finder行为 默认完全隐藏(需要特殊设置才能显示) 默认可见(文件名前有一个小圆点)
终端默认行为 ls 默认不显示 ls 默认不显示,但 ls -A 会显示
主要用途 隐藏系统文件、用户不想看到的文件 隐藏配置文件、脚本等,是 Unix-like 系统的传统做法

总结一下:

  • chflags hidden 是 macOS 特有的、更“硬核”的隐藏方式,通过底层标志位实现。
  • 开头的文件是跨平台的通用约定,主要用于区分配置文件。

如何让 Finder 显示被 chflags hidden 隐藏的文件?

如果你想在 Finder 中看到这些被“硬”隐藏的文件,可以执行以下命令:

# 创建一个名为 .hidden 的文件(如果不存在)
# 并将要显示的文件路径写进去,每行一个
echo "/path/to/your/hidden_file" >> ~/.hidden
echo "/path/to/your/hidden_folder" >> ~/.hidden

或者,更简单的方法是使用 defaults 命令来修改 Finder 的设置:

# 显示所有文件,包括被 chflags hidden 隐藏的文件
defaults write com.apple.finder AppleShowAllFiles -bool true
# 重启 Finder 使设置生效
killall Finder

要恢复隐藏,只需将上面的 true 改为 false,然后再次重启 Finder。

chflags hidden 是一个强大的 macOS 命令,用于通过设置文件系统标志位来隐藏文件和目录,它与 Linux/Unix 中通过文件名(前缀)来隐藏文件的方式有本质区别,它的隐藏效果非常彻底,是管理 macOS 系统文件或创建完全不可见文件的利器。

-- 展开阅读全文 --
头像
androbench 5.0参数有哪些关键项?
« 上一篇 今天
Inspiron 15 5559拆机步骤和注意事项有哪些?
下一篇 » 今天

相关文章

取消
微信二维码
支付宝二维码

最近发表

标签列表

目录[+]