Linux 中的 Chattr 命令(文件属性)

2023-10-21

在 Linux 中,文件属性是描述文件行为的元数据属性。例如,属性可以指示文件是否被压缩或指定文件是否可以被删除。

一些属性(如不变性)可以设置或清除,而其他属性(如加密)是只读的,只能查看。对某些属性的支持取决于所使用的文件系统。

本文介绍了如何使用chattr用于更改 Linux 文件系统上的文件属性的命令。

chattr Syntax #

The chattr命令采用以下一般形式:

chattr [OPTIONS] [OPERATOR][ATTRIBUTES] FILE...

的价值[OPERATOR]部分可以是以下符号之一:

  • +- 加号运算符告诉chattr将指定的属性添加到现有属性中。
  • -- 减号运算符告诉chattr从现有属性中删除指定属性。
  • =- 等于运算符告诉chattr将指定属性设置为唯一属性。

运算符后跟一个或多个[ATTRIBUTES]您想要在文件属性中添加或删除的标志。以下是一些常见属性和关联标志的列表:

  • a- 设置此属性后,文件只能以追加模式打开进行写入。
  • A- 当打开具有此属性集的文件时,其 atime 记录不会更改。 atime(访问时间)是最后一次由某些命令或应用程序访问/打开文件的时间。
  • e- 此属性表示文件正在使用范围来映射磁盘上的块。这e属性不能被修改chattr.
  • i- 该属性表明该文件是不可变的,这意味着该文件不能被删除或重命名。

有关所有文件属性和标志的完整列表,请键入man chattr在您的终端中。

默认情况下,使用以下命令复制文件时不会保留文件属性cp or rsync .

chattr例子#

常见用途之一chattr就是给文件或目录设置不可变标志,以防止用户删除或重命名该文件。

您可以使用以下命令查看文件属性lsattr命令:

lsattr todo.txt

下面的输出显示只有e标志已设置:

--------------e----- todo.txt

要使文件不可变,请添加i标志与+现有属性的运算符:

sudo chattr +i todo.txt

我们正在使用sudo因为只有 root 可以更改不可变标志。

确认属性已添加:

lsattr todo.txt
----i---------e----- todo.txt

要恢复更改并删除不可变标志,请使用-操作员:

sudo chattr +i todo.txt

With chattr,您可以一次添加或删除多个属性。例如,要使文件不可变并告诉内核不要跟踪上次访问时间,您可以使用:

sudo chattr +iA todo.txt

您可以使用的最后一个运算符是=操作员。例如,要设置e属性作为唯一的属性,您将运行:

sudo chattr "=e" todo.txt

请注意,运算符和标志括在引号中,以避免 shell 解释+特点。

结论#

chattr是一个用于更改 Linux 文件系统上的文件属性的命令行工具。

如果您有任何问题或反馈,请随时发表评论。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux 中的 Chattr 命令(文件属性) 的相关文章

  • 在 PowerShell 中显示 Unicode

    我想要实现的目标应该相当简单 尽管 PowerShell 试图让它变得困难 我想显示文件的完整路径 其中一些文件的名称中包含阿拉伯语 中文 日语和俄语字符 我总是得到一些无法解读的输出 如下所示 控制台中看到的输出正被另一个脚本使用 输出包
  • 为什么使用 $PATH 以及它是什么

    我对编程有点陌生 不是真的 但我仍在学习 我们不是吗 虽然我了解 Java 和 Python 并且了解 C C JS C HTML CSS 等 并且我可以在终端中很好地导航 但我不熟悉终端中的 PATH 是什么 我使用 Linux 终端和
  • 如何在终端中显示图像?

    是否有任何类型的实用程序可以用来将图像转换为 ASCII 然后在我的终端中打印 我寻找过 但似乎没有找到 一个名为cacaview http linux die net man 1 cacaview允许您执行此操作 它是交互式的 允许您平移
  • 使用通配符在 .zshrc 中获取多个文件

    我通过 oh my zsh 使用 z shell 我想从 zshrc 文件中获取多个别名文件 这样我就可以让事情井井有条 我已经为别名文件添加了前缀 alias 这样我就可以通配符加载它们 但是 打电话给source alias 只加载第一
  • 我忘记了分号“;”在 MySQL 终端查询中。我该如何退出?

    有时我忘记用分号 结束 SQL 查询 在我的 Mac 终端中 发生这种情况时 终端会设置一个 gt 一开始我无法退出此命令或运行任何其他 SQL 命令 我该如何退出 你不知道mysql终端有5种不同的报价模式 我建议你回顾一下它们 http
  • python:Windows终端中的unicode,使用的编码?

    我在 Windows 7 终端中使用 Python 解释器 我正在尝试了解 unicode 和编码 I type gt gt gt s gt gt gt s x89 gt gt gt u u gt gt gt u u xeb 问题1 字符串
  • 如何清除整个终端(PowerShell)

    我有一个问题 在powershell中使用clear或cls命令仅清除终端的可见部分 我想知道如何清除整个终端 顺便说一句 我使用 VSCode tl dr 问题是关于清零的both屏幕和回滚缓冲区 in the 综合终端 of 视觉工作室
  • 如何检测来自 QNX 中 ncurses 的屏幕调整大小事件?

    我无法配置为接收有关使用 ncurses QNX Momentics 更改终端大小的事件 我使用Putyy作为终端 通过COM端口传输数据 我的问题是如何实现使用远程终端时接收屏幕变化事件 FILE fcons fopen dev ser1
  • 如何从 Linux 的 shell 中删除所有以 ._ 开头的文件?

    确实如标题所示 我已将许多文件从 Mac 复制到 Raspberry Pi 这导致了许多以前缀开头的多余文件 我想删除以以下开头的文件夹中的每个文件 我该怎么做 尝试类似的方法 cd path to directory rm rf 或者 如
  • 在Python中通过sys.stdout写入unicode字符串

    暂时假设一个人无法使用print 从而享受自动编码检测的好处 所以这给我们留下了sys stdout 然而 sys stdout太蠢了不做任何合理的编码 http bugs python org issue4947 现在人们阅读 Pytho
  • 如何在 Xamarin.Mac 中执行终端命令并读入其输出

    我们正在编写一个 Xamarin Mac 应用程序 我们需要执行像 uptime 这样的命令 并将其输出读取到应用程序中进行解析 这可以做到吗 在 Swift 和 Objective C 中都有 NTask 但我似乎无法在 C 中找到任何示
  • 如何不断刷新屏幕并实时更新[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想在linux上写一个C程序 不断刷新屏幕并实时更新 例如类似于top终端中的命令 谁能指出我正确的方向 为了保持它跨终端类型的可移
  • 如何执行“sudo nvm”?

    在我的 Mac 上 我想将一些需要 su 权限的包迁移到另一个节点版本 我使用 homebrew 安装 nvm 现在我需要执行 sudo nvm 或 reinstall packages将失败 me MacBook sudo nvm sud
  • Alt 键快捷键在使用 Vim 的 gnome 终端上不起作用

    我在 gnome 终端上运行 Vim 但 alt 键映射不起作用 例如 imap
  • Linux 仅使用时间/日期戳重命名文件

    我有一个文件 我想将 mv 重命名为year month day h m s 最好的方法是什么 我已尝试以下操作 但它不会动态添加正确的标记 原始文件名称中实际上有一个反斜杠 mv getnw myfilename txt Y m d H
  • linux命令中括号的用途是什么[重复]

    这个问题在这里已经有答案了 我在 Linux 终端中运行以下命令 谁能告诉我 Linux 终端中括号和以下命令的用途是什么 echo GET HTTP 1 0 echo 主机 www google com echo 数控 www googl
  • 如何在 Vim 中创建行号和文本之间的边框

    我希望在行号右侧和文本左侧有一条细边框线 您可以使用不同的颜色来突出显示LineNr 例如 hi LineNr cterm bold ctermbg gray ctermfg black gui bold guibg gray guifg
  • 无需 root 访问权限即可安装 zsh? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 有可能 以及如何 我确实需要在几台具有 ssh 访问权限 但没有 root 访问权限 的远程计算机上使用此功能 下载 zsh wget O zsh t
  • 如何在 osx 终端中返回应用程序版本

    我需要在 Mac osX 10 10 上的 sh 脚本中使用应用程序版本 以便我可以与另一个数字进行比较 以便我可以强制更新或不更新 到目前为止我已经有了这个 我使用 Firefox app 作为示例 FirefoxmdlsVersion
  • 使用转义序列渲染文本(如终端)

    你好 我正在寻找一些库或工具来在文本文件中呈现带有转义序列字符的文本 我不知道如何称呼它 但这是一个例子 echo e abc vdef abc def echo e abc vdef gt tmp xxxxx vi tmp xxxxx 我

随机推荐

  • 如何限制 Apache 中的带宽

    Apache 是世界上使用最广泛的 Web 服务器之一 以其灵活性和稳健性而闻名 有时 系统管理员可能会发现自己需要限制 Apache 使用的带宽 以防止某个网站或服务使用所有可用资源 本文将逐步详细介绍如何在 Apache 中限制带宽 先
  • Linux下如何修改文件夹及子文件夹的权限

    为任何 Web 应用程序设置正确的文件权限是 Web 托管的重要组成部分 在本教程中 您将学习如何在单个命令中递归地更改文件夹和子文件夹的文件权限 如您所知 在 Linux 中 一切都被视为文件 文件夹也称为目录文件 用 表示 d 在权限部
  • 如何在 CentOS 和 Fedora 中安装或更新 OpenSSH

    OpenSSH是一款广泛用于远程登录或远程文件传输的免费工具 它使用SSH SecSH协议套件为网络服务提供加密 其源代码可供所有人免费使用 本文将帮助您在 CentOS RHEL 和 Fedora 系统中安装或更新 OpenSSH 服务器
  • 如何在 Debian 8 上安装 Nginx (Jessie)

    Nginx 是 Apache HTTP Server 之外的另一个最受欢迎的 Web 服务器 全球范围内大量流行网站都在使用它 该网络服务器对于大流量网站非常有用 本教程将帮助您使用 apt get 在 Debian 8 Jessie 上安
  • 如何在 CentOS/RHEL 和 Fedora 上设置 AWStats(Apache 日志分析器)

    AWStats 是一款免费的开源日志分析器 可提供有关 Apache Web 服务器流量的详细见解 借助 AWStats 您可以跟踪网站访问 引用网站 搜索引擎 操作系统 浏览器等等 它是网站所有者 系统管理员和开发人员监控网站性能并做出明
  • 在基于 RHEL 的系统上配置 EPEL 存储库

    Extra Packages for Enterprise Linux EPEL 是一个在线存储库 为企业 Linux 系统提供高质量的常用软件包 这些软件包是在 Fedora 上开发和测试的 Fedora 可用于 RHEL EPEL 存储
  • 如何通过 PPA 在 Ubuntu 18.04 和 16.04 上安装 MongoDB 4.4

    MongoDB 是一个完全灵活的索引支持和丰富的查询数据库 Mongodb 是一个 NoSQL 数据库 MongoDB 通过 GridFS 提供大型媒体存储 点击here有关此版本 MongoDB 的更多详细信息 本教程将帮助您在 Ubun
  • 如何在 Ubuntu 18.04 和 16.04 LTS 上安装 Webmin

    Webmin是一个类似于 CPanel 的网络托管控制面板 它提供了易于使用的界面来管理类 Unix 系统 Webmin 非常易于使用 轻量级应用程序可以在一分钟内轻松安装到系统上 Webmin 删除了所有通过命令行完成的手动任务 本文将帮
  • 如何检查 OpenSSH 版本

    OpenSSH是一个安全的网络实用程序 用于使用 SSH 协议进行远程登录 这是大多数基于 Linux 的系统用于远程 SSH 登录的主要工具 OpenSSH 为您提供通过 SSH 协议连接远程系统的选项 它提供了两个系统之间通信的端到端加
  • 如何在 CentOS/RHEL 9/8/7 上安装 NRPE

    NRPE Nagios Remote Plugin Executor 是一个 Nagios 插件 用于在远程主机上远程执行插件和脚本 这允许您监视远程主机上的资源 例如磁盘使用情况 CPU 负载和网络活动 在本文中 我们将向您展示如何在 C
  • 如何在 Ubuntu 20.04 中安装 PostgreSQL 和 pgAdmin4

    PostgreSQL是一个强大 可靠 健壮且开源的对象关系数据库系统 该数据库系统的最新版本是 PostgreSQL 13 2 而版本 12 6 11 11 10 16 9 6 21 和 9 5 25 仍在定期更新 本教程介绍如何在 Ubu
  • 如何在 Ubuntu 和 Debian 中切换 Python 版本

    Python 是一种高级编程语言 广泛用于系统编程 它适用于所有流行的操作系统 您可以在单个系统上安装多个 Python 版本 安装多个 Python 版本后 您可以使用 update alternatives 工具切换默认 Python
  • 如何在 CentOS 7 上安装和使用 Docker

    Docker 是一种容器化技术 可让您快速构建 测试和部署应用程序 作为可移植 自给自足的容器 几乎可以在任何地方运行 在本教程中 我们将介绍如何在 CentOS 7 上安装 Docker CE 并探索基本的 Docker 概念和命令 先决
  • 如何在 CentOS 8 上安装 CouchDB

    Apache CouchDB 是由 Apache 软件基金会开发的免费开源 NoSQL 数据库 它可以用作单节点或集群数据库 CouchDB 服务器将其数据存储在命名数据库中 其中包含具有以下内容的文档JSON结构 每个文档由许多字段和附件
  • 如何在 Ubuntu 20.04 上安装 Kvm

    KVM 基于内核的虚拟机 是内置于 Linux 内核中的开源虚拟化技术 使用 KVM 运行多个 Linux 或 Windows 来宾虚拟机 每个来宾都与其他来宾完全隔离 并拥有自己的操作系统和专用虚拟硬件 例如 CPU 内存 网络接口和存储
  • 如何在 Ubuntu 20.04 上安装 OpenCV

    OpenCV 开源计算机视觉库 是一个开源计算机视觉库 绑定了 C Python 和 Java 并支持所有主要操作系统 它可以利用多核处理并具有 GPU 加速功能来实现实时操作 OpenCV 的应用范围很广 包括医学图像分析 拼接街景图像
  • 如何在 Debian 10 Linux 上添加交换空间

    交换空间是磁盘上的空间 当物理内存已满时使用 当 Linux 系统耗尽 RAM 时 非活动页面将从 RAM 移至交换空间 交换空间可以采用专用交换分区或交换文件的形式 通常 运行 Debian 虚拟机时不存在交换分区 因此唯一的选择是创建交
  • 如何在 CentOS 8 上安装 Apache Maven

    Apache Maven 是一个开源项目管理和理解工具 主要用于 Java 项目 Maven 使用项目对象模型 POM 它本质上是一个 XML 文件 其中包含有关项目 配置详细信息 项目依赖项等的信息 在本教程中 我们将解释如何在 Cent
  • 如何在 Ubuntu 18.04 上安装 TensorFlow

    TensorFlow是由 Google 构建的免费开源机器学习平台 许多组织都在使用它 包括 Twitter PayPal 英特尔 联想和空中客车公司 TensorFlow 可以在 Python 虚拟环境中安装在系统范围内 作为Docker
  • Linux 中的 Chattr 命令(文件属性)

    在 Linux 中 文件属性是描述文件行为的元数据属性 例如 属性可以指示文件是否被压缩或指定文件是否可以被删除 一些属性 如不变性 可以设置或清除 而其他属性 如加密 是只读的 只能查看 对某些属性的支持取决于所使用的文件系统 本文介绍了