系统学习 Windows 学习路径:从 CMD 到 PowerShell、系统网络,再到 WSL 与 Server

attrib

查看或修改文件属性,如只读、隐藏和系统标记。

补充说明

attrib 显示或设置文件和目录的基本属性:r 只读、a 存档、s 系统、h 隐藏、o 脱机、i 不参与内容索引,以及较新的 x、p、u、b。加号设置、减号清除,/s 递归子目录,/d 同时处理目录,/l 只作用于符号链接本身。它常用于清理从别的机器拷来的只读文件、临时隐藏文件,或修正备份脚本依赖的存档位。

边界:属性不是权限。只读属性只阻止普通写入和删除,拥有写权限的用户可以自己用 attrib -r 清掉;隐藏和系统属性也不提供任何保密能力。真正的访问控制要用 icacls。存档位主要给备份和 xcopy 使用,修改它不会改变文件内容。系统文件属性会影响系统工具的行为,不要随意批量加 +s。

Windows 10/11 与 Server 2016+ 的常用属性一致;+x、+p、+u、+b 依赖文件系统和版本,普通 NTFS 卷上不一定可用。CMD 的 attrib 是外部程序,PowerShell 中同样调用 attrib.exe,参数不变;PowerShell 原生的属性操作要用 Set-ItemProperty。

常用示例

# 1. 查看单个文件的属性
C:\> attrib C:\logs\app.log

# 2. 给配置文件加只读,防止误改
C:\> attrib +R C:\config\settings.ini

# 3. 从恢复盘拷回的文件常带只读/隐藏/系统位,批量清除
C:\> attrib -R -H -S /S /D C:\recovered\*.*

# 4. 临时隐藏一个文件,注意这不是加密或权限控制
C:\> attrib +H +S C:\temp\secret.txt

# 5. 递归查看目录下带只读属性的文件
C:\> attrib /S /D C:\data\*.* | findstr /R /C:" R "

# 6. 让文件不参与内容索引,减少搜索索引噪音
C:\> attrib +I C:\data\report.xlsx

# 7. 只改符号链接自身,不改目标
C:\> attrib /L C:\dev\config-link.ini

易错点与排错

相关命令

参考链接

读完自测

合上页面,先回答,再展开对照。

  1. 给文件加 +h 能阻止别人读取或修改它吗?为什么?
  2. 文件同时有系统或隐藏属性时,为什么清除只读位可能失败?
  3. attrib /s /d 批量修改前应该怎样预演?
答案
  1. 不能,隐藏只是显示属性;权限控制要用 icacls。
  2. 官方说明需先清除系统或隐藏属性,才能修改其它属性。
  3. 先不带修改参数查看 attrib /s /d 清单,再执行 +/- 修改。
微信小程序码:扫码打开命令速查小程序

小程序版

微信扫码,随时查命令