文件隐藏属性chattr,lsattr

Linux命令行实用教程:chattr与vi使用详解

chattr

root@LXD:/home/lxd#  chattr [+-=] [ASacdistu] 文件或目录名

S:一般文件是异步写入磁盘,当加上S属性,无论怎样修改,改改动会同步写入磁盘。

a:设置后,文件只能增加数据,而不能删除和修改,只有root可以设置此属性。

c:设置后,在存储时将文件自动压缩再存储,读取时,自动解压。

i: 设置后,文件完全不可动。只有root可以设置此属性。

lsattr 

root@LXD:/home/lxd#  lsattr [-adR] 文件或目录

-a:将隐藏文件的属性秀出来

-d:若接的时目录,仅列出目录本身属性

-R:连同子目录的数据一并列出来

vi 有三种工作模式:命令模式,插入模式,末行模式。

刚开始启动vi进入的是命令模式。  该模式可以输入各种vi 命令。例如 光标移动,字符、字、行的删除复制粘贴等。

插入模式----在命令模式输入 i,a,o等插入命令可转到插入模式。  按<Esc>键退回命令模式。

末行模式----按<:>键进入末行模式。  按<Esc>或<Backspace>退回命令模式。


文件查找和替换(命令模式下)

×      ?string   光标移动到string的首位

×       n      向文件头方向重复前一个查找命令

×      N      向文件尾方向重复上一个命令

×     :s/oldstr/newstr    在当前行将所有oldstr换成newstr  只替换一次

×     :s/oldstr/newstr/g   在当前行将所有oldstr替换成newstr

×     ;1,10s/oldstr/newstr/g    将1到10行的oldstr替换为newstr

×     :1,$s/oldstr/newstr/g   将整个文件中的oldstr替换成newstr


文件的删除(命令模式)

×    ( n)x       删除从光标开始的n 个字符

×    (n) dw     删除从光标位置开始的n个字

×     (n)db     删除从光标开始的前n个字

×     d(0/$)    删除从光标到(行首/行尾)的所有字符

×   ndd         删除从当前行开始的n 行

×     d((:/:))      删除从光标位置到行首或者行尾的所有字符

×     d({:/:})       删除从光标位置到段首或段尾的所有字符

 若要取消前一次操作,在命令模式下输入u.


文件的复制和粘贴

×       (n)yw    从光标所在到字尾的n个字复制到缓存区   若无n,仅复制光标处字符

×       (n)yb     从光标开始向左复制n 个字

×       y(0/$)    复制从光标开始到行尾/行末所有字符

×       n(yy)    复制当前行

×       (n)p    在光标所在位置后面复制缓存区内容,共复制n 次

×       (n)P   在光标所在位置前面复制缓存区内容,复制n次



<think>我们正在讨论如何修改Linux文件隐藏属性。在Linux中,除了常见的读(r)、写(w)、执行(x)权限外,还有一些隐藏属性,这些属性可以通过`chattr`命令设置,通过`lsattr`命令查看。这些属性包括但不限于:只追加(a)、不可修改(i)等。 根据引用[3]中提到,我们可以通过调用`File.SetAttributes`方法来设置属性,但在Linux命令行中,我们通常使用`chattr`命令。 步骤: 1. 查看文件的当前隐藏属性:使用`lsattr 文件名` 2. 修改隐藏属性:使用`chattr`命令,例如: - 设置文件为只追加(只能追加内容,不能删除或修改已有内容):`sudo chattr +a 文件名` - 设置文件不可修改(不能被删除、重命名、修改,也不能创建链接):`sudo chattr +i 文件名` - 移除属性:使用`-`代替`+`,例如`sudo chattr -i 文件名` 注意:这些操作通常需要root权限,所以使用`sudo`。 示例: 假设我们有一个文件`important.txt`,我们想将其设置为不可修改: - 首先查看属性:`lsattr important.txt` - 设置不可修改:`sudo chattr +i important.txt` - 再次查看:`lsattr important.txt`,应该会看到属性中包含'i' - 尝试删除:`rm important.txt`,会提示“Operation not permitted” 另外,引用[1]中提到了使用`chmod`修改文件的可执行权限,但这里我们讨论的是隐藏属性,所以用`chattr`。 因此,用户的问题“how to change hidden file attributes in Linux”可以通过使用`chattr`命令来改变文件隐藏属性。 注意:不同的文件系统支持的属性可能不同,通常ext2/3/4文件系统支持这些属性。 总结: - 查看隐藏属性:`lsattr <文件名>` - 设置隐藏属性:`chattr <操作符><属性> <文件名>`,操作符为`+`(添加)、`-`(移除)、`=`(设定为指定属性) - 常用属性:a(只追加)、i(不可修改)等。 请根据实际需求选择合适的属性。 相关问题: 1. 如何查看Linux文件隐藏属性? 2. `chattr`命令中常用的属性有哪些,分别代表什么含义? 3. 在哪些情况下需要使用文件隐藏属性? 4. 如何移除文件隐藏属性?</think>在 Linux 系统中修改文件隐藏属性(如只读、不可删除等)需要使用 `chattr` 命令(change attributes),并通过 `lsattr` 命令查看当前属性。以下是详细操作指南: --- ### 一、查看文件隐藏属性 使用 `lsattr` 命令: ```bash lsattr 文件名 ``` 输出示例: ```bash ----i---------e----- 文件.txt ``` - 字母表示属性状态(如 `i` 表示不可修改) - `e` 表示文件使用 extents 映射(现代文件系统默认) --- ### 二、修改隐藏属性(`chattr` 命令) **基本语法:** ```bash sudo chattr [操作符][属性] 文件名 ``` - **操作符**: - `+`:添加属性 - `-`:移除属性 - `=`:重置属性(覆盖原有设置) - **常用属性**: | 属性 | 功能说明 | |------|----------| | `i` | 文件不可修改/删除/重命名(只读)[^3] | | `a` | 只能追加内容(不能修改或删除) | | `A` | 关闭访问时间更新(提升性能) | | `u` | 文件删除后保留数据块(可恢复) | --- ### 三、操作示例 1. **设置文件为只读(不可修改)**: ```bash sudo chattr +i 文件.txt ``` - 验证:尝试删除文件会报错 `Operation not permitted` 2. **允许文件追加内容但禁止修改**: ```bash sudo chattr +a 日志.log ``` - 此时可用 `>>` 追加内容,但无法用 `vim` 直接编辑 3. **移除隐藏属性**: ```bash sudo chattr -i 文件.txt # 移除只读属性 ``` --- ### 四、注意事项 1. **需要 root 权限**:大多数属性修改需用 `sudo`。 2. **文件系统支持**:仅 ext2/3/4、XFS、Btrfs 等支持这些属性。 3. **属性优先级**:隐藏属性高于常规权限(即使有 `rw` 权限,`+i` 仍会禁止修改)[^3]。 --- ### 五、属性列表(部分) | 属性 | 功能 | |------|------| | `c` | 自动压缩/解压 | | `s` | 安全删除(覆盖后归零) | | `d` | 跳过 `dump` 备份 | | `e` | 使用 extents 映射(不可修改) | 完整列表可通过 `man chattr` 查看。 > ⚠️ 警告:误用 `chattr` 可能导致文件无法操作,建议先在测试文件上练习。 --- ### 相关问题 1. 如何查看 Linux 文件的所有隐藏属性? 2. `chattr +i` 和 `chmod 444` 设置的只读有何区别? 3. 哪些场景下需要使用 `chattr +a`(只追加)属性? 4. 如何恢复被 `chattr +i` 锁定的重要文件? 5. 为什么修改某些属性需要卸载文件系统?
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值