查看或修改文件属性,如只读、隐藏和系统标记。
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
attrib -r 清掉;要限制访问请用 icacls。dir /A 或资源管理器“显示隐藏项目”就能看到;不要把隐藏当加密。attrib -s -h。/s /d 会递归改整棵树,且没有试运行;先不带修改参数跑 attrib /s /d 路径\*.* 看清单,再执行修改。/l 只作用于符号链接;不加 /l 时 attrib 可能改到链接目标,处理链接前先用 dir /al 确认。+s 可能让备份、杀毒或系统工具改变处理方式;只对确有需要的文件设置,并记录原属性以便回滚。合上页面,先回答,再展开对照。
+h 能阻止别人读取或修改它吗?为什么?attrib /s /d 批量修改前应该怎样预演?icacls。attrib /s /d 清单,再执行 +/- 修改。
小程序版
微信扫码,随时查命令