侧边栏壁纸
Linux入门自学网博主等级

每日学一条Linux命令,终成Linux大神

  • 累计撰写 725 篇文章
  • 累计创建 143 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Linux lsattr命令用法详解:查看和修改文件的扩展属性(附实例教程和注意事项)

Linux lsattr命令介绍

Linux list attributes的缩写,它的作用是列出文件或目录的扩展属性,也就是一些特殊的标志位,用来控制文件或目录的行为。这些属性可以用chattr命令来设置或取消,也可以用lsattr命令来查看。lsattr命令支持多种文件系统,如ext2, ext3, ext4, xfs等。lsattr命令可以帮助你保护重要的文件,防止被误删或修改,也可以优化文件的性能,如压缩、同步、日志等。

Linux lsattr命令适用的Linux版本

lsattr命令是Linux系统的标准命令,几乎所有的Linux发行版都自带了这个命令,你可以在终端中输入lsattr --version来查看你的系统中的lsattr命令的版本信息。如果你的系统中没有lsattr命令,你可以通过安装e2fsprogs软件包来获取它,这个软件包包含了一些操作ext2/ext3/ext4文件系统的工具,如chattr, dumpe2fs, e2fsck等。不同的Linux发行版可能有不同的安装命令,下面是一些常见的安装命令:

  • 在基于Debian的系统中,如Ubuntu, Mint等,你可以使用apt-get命令来安装e2fsprogs软件包,如下:
[linux@bashcommandnotfound.cn ~]$ sudo apt-get update
[linux@bashcommandnotfound.cn ~]$ sudo apt-get install e2fsprogs
  • 在基于Red Hat的系统中,如CentOS, Fedora等,你可以使用yum或dnf命令来安装e2fsprogs软件包,如下:
[linux@bashcommandnotfound.cn ~]$ sudo yum update
[linux@bashcommandnotfound.cn ~]$ sudo yum install e2fsprogs

或者

[linux@bashcommandnotfound.cn ~]$ sudo dnf update
[linux@bashcommandnotfound.cn ~]$ sudo dnf install e2fsprogs
  • 在基于Arch的系统中,如Manjaro, Antergos等,你可以使用pacman命令来安装e2fsprogs软件包,如下:
[linux@bashcommandnotfound.cn ~]$ sudo pacman -Syu
[linux@bashcommandnotfound.cn ~]$ sudo pacman -S e2fsprogs

Linux lsattr命令的基本语法

lsattr命令的基本语法如下:

lsattr [选项] [文件或目录...]

其中,选项是一些可选的参数,用来控制lsattr命令的行为,如递归列出目录的内容,显示文件的版本号等。文件或目录是要查看属性的对象,可以是一个或多个,如果不指定,则默认为当前目录。如果文件或目录的名称以.开头,则需要使用-a选项来显示它们,否则会被忽略。

Linux lsattr命令的常用选项说明

lsattr命令有很多选项,可以用lsattr --helpman lsattr来查看它们的完整列表和说明。这里我们只介绍一些最常用的选项,如下:

选项说明
-a显示所有文件和目录,包括以.开头的隐藏文件和当前目录.和上级目录..
-d只显示目录本身的属性,而不是目录中的文件的属性
-R递归地显示目录和子目录中的所有文件的属性
-v显示文件的版本号,这个版本号是每次修改文件时自动增加的,可以用来检查文件的一致性
-V显示lsattr命令的版本信息

Linux lsattr命令的实例

下面是一些使用lsattr命令的实例,你可以在你的系统中尝试运行它们,看看效果。

  • 查看当前目录中的文件的属性,注意输出中的一些字母,它们表示文件的不同的属性,如i表示不可修改,a表示只能追加,e表示使用extents存储等,具体的含义可以用man chattr来查看。
[linux@bashcommandnotfound.cn ~]$ lsattr
-------------e--- ./file1.txt
----i--------e--- ./file2.txt
----a--------e--- ./file3.txt
  • 查看指定文件的属性,可以使用绝对路径或相对路径,也可以指定多个文件。
[linux@bashcommandnotfound.cn ~]$ lsattr /etc/passwd /etc/shadow
-------------e--- /etc/passwd
-----S-----e--- /etc/shadow
  • 查看当前目录和子目录中的所有文件的属性,使用-R选项。
[linux@bashcommandnotfound.cn ~]$ lsattr -R
.:
-------------e--- ./file1.txt
----i--------e--- ./file2.txt
----a--------e--- ./file3.txt

./subdir:
-------------e--- ./subdir/file4.txt
----i--------e--- ./subdir/file5.txt
----a--------e--- ./subdir/file6.txt
  • 查看当前目录和子目录中的所有文件和目录的属性,包括隐藏文件和...,使用-a选项。
[linux@bashcommandnotfound.cn ~]$ lsattr -a
-------------e--- ./
-------------e--- ../
-------------e--- ./.bash_history
-------------e--- ./.bash_logout
-------------e--- ./.bash_profile
-------------e--- ./.bashrc
-------------e--- ./file1.txt
----i--------e--- ./file2.txt
----a--------e--- ./file3.txt
-------------e--- ./subdir

./subdir:
-------------e--- ./
-------------e--- ../
-------------e--- ./file4.txt
----i--------e--- ./file5.txt
----a--------e--- ./file6.txt
  • 查看目录本身的属性,而不是目录中的文件的属性,使用-d选项。
[linux@bashcommandnotfound.cn ~]$ lsattr -d subdir
-------------e--- subdir
  • 查看文件的版本号,使用-v选项。
[linux@bashcommandnotfound.cn ~]$ lsattr -v file1.txt
    131072 -------------e--- file1.txt
  • 查看lsattr命令的版本信息,使用-V选项。
[linux@bashcommandnotfound.cn ~]$ lsattr -V
lsattr 1.45.6 (20-Mar-2020)

Linux lsattr命令的注意事项

在使用lsattr命令时,有一些注意事项需要了解,如下:

  • lsattr命令只能显示和修改扩展属性,不能显示和修改基本属性,如所有者、权限、时间戳等,如果要查看或修改这些属性,可以使用stat或chmod等命令。
  • lsattr命令只能作用于支持扩展属性的文件系统,如ext2, ext3, ext4, xfs等,如果文件系统不支持扩展属性,lsattr命令会报错,如下:
[linux@bashcommandnotfound.cn ~]$ lsattr /dev/sda1
lsattr: Inappropriate ioctl for device While reading flags on /dev/sda1
  • lsattr命令需要有足够的权限才能查看或修改文件的属性,如果没有权限,lsattr命令会报错,如下:
[linux@bashcommandnotfound.cn ~]$ lsattr file2.txt
lsattr: Permission denied While reading flags on file2.txt
  • 如果你在使用lsattr命令时遇到了bash: lsattr: command not found的错误,说明你的系统中没有安装lsattr命令,你可以参考上面的安装命令来安装e2fsprogs软件包,或者使用你的系统的软件管理工具来搜索和安装它。
0

评论区