Linux lsattr命令介绍
lsattr
命令是list attributes
的缩写,主要用于列出Linux系统文件的属性。这个命令可以帮助我们了解文件的各种属性,比如是否可以被修改、删除等。
Linux lsattr命令适用的Linux版本
lsattr
命令在大多数Linux发行版中都可以使用,包括Debian、Ubuntu、Alpine、Arch Linux、Kali Linux、RedHat/CentOS、Fedora、Raspbian等。如果在某些Linux发行版中无法使用,通常是因为没有安装e2fsprogs
包。在Debian和Ubuntu中,可以使用以下命令进行安装:
[linux@bashcommandnotfound.cn ~]$ sudo apt-get install e2fsprogs
在RedHat/CentOS 7中,可以使用以下命令进行安装:
[linux@bashcommandnotfound.cn ~]$ sudo yum install e2fsprogs
在RedHat/CentOS 8和Fedora中,可以使用以下命令进行安装:
[linux@bashcommandnotfound.cn ~]$ sudo dnf install e2fsprogs
在Alpine中,可以使用以下命令进行安装:
[linux@bashcommandnotfound.cn ~]$ sudo apk add e2fsprogs
Linux lsattr命令的基本语法
语法格式如下:
lsattr [选项]... [文件]...
Linux lsattr命令的常用选项或参数说明
以下是lsattr
命令的一些常用选项:
选项 | 说明 |
---|---|
-a | 列出所有文件和目录,包括以. 开头的隐藏文件 |
-d | 只列出目录的属性,而不是其下的文件 |
-R | 递归处理,将指定目录下的所有文件及子目录一并处理 |
-v | 显示文件的版本/生成号 |
Linux lsattr命令实例详解
下面是一些lsattr
命令的使用实例:
实例1:查看文件属性
[linux@bashcommandnotfound.cn ~]$ lsattr file.txt
这个命令会显示file.txt
文件的属性。
实例2:查看目录属性
[linux@bashcommandnotfound.cn ~]$ lsattr -d directory
这个命令会显示directory
目录的属性,而不是其下的文件。
实例3:递归查看目录属性
[linux@bashcommandnotfound.cn ~]$ lsattr -R directory
这个命令会递归显示directory
目录及其子目录下所有文件的属性。
实例4:查看文件系统中所有文件的属性
[linux@bashcommandnotfound.cn ~]$ lsattr -a /
这个命令会显示文件系统中所有文件和目录的属性,包括以.
开头的隐藏文件。
实例5:查看并修改隐藏文件的属性
[linux@bashcommandnotfound.cn ~]$ lsattr .hidden_file
[linux@bashcommandnotfound.cn ~]$ chattr +i .hidden_file
[linux@bashcommandnotfound.cn ~]$ lsattr .hidden_file
这个实例首先查看.hidden_file
隐藏文件的属性,然后使用chattr
命令添加不可修改(i)属性,最后再次查看文件的属性,可以看到属性已经被修改。
实例6:递归查看并修改隐藏目录的属性
[linux@bashcommandnotfound.cn ~]$ lsattr -R .hidden_directory
[linux@bashcommandnotfound.cn ~]$ chattr -R +i .hidden_directory
[linux@bashcommandnotfound.cn ~]$ lsattr -R .hidden_directory
这个实例首先递归查看.hidden_directory
隐藏目录及其子目录下所有文件的属性,然后使用chattr
命令递归添加不可修改(i)属性,最后再次查看目录的属性,可以看到属性已经被修改。这对于保护重要的配置文件非常有用。
实例7:查看并修改链接文件的属性
[linux@bashcommandnotfound.cn ~]$ lsattr symlink
[linux@bashcommandnotfound.cn ~]$ chattr +i symlink
[linux@bashcommandnotfound.cn ~]$ lsattr symlink
这个实例首先查看symlink
链接文件的属性,然后使用chattr
命令添加不可修改(i)属性,最后再次查看文件的属性,可以看到属性已经被修改。这对于保护重要的链接文件非常有用。
实例8:查看并修改目录下所有文件的属性
[linux@bashcommandnotfound.cn ~]$ lsattr directory/*
[linux@bashcommandnotfound.cn ~]$ chattr +i directory/*
[linux@bashcommandnotfound.cn ~]$ lsattr directory/*
这个实例首先查看directory
目录下所有文件的属性,然后使用chattr
命令添加不可修改(i)属性,最后再次查看文件的属性,可以看到属性已经被修改。这对于保护重要的文件非常有用。
实例9:查看并修改特定类型文件的属性
[linux@bashcommandnotfound.cn ~]$ lsattr directory/*.txt
[linux@bashcommandnotfound.cn ~]$ chattr +i directory/*.txt
[linux@bashcommandnotfound.cn ~]$ lsattr directory/*.txt
这个实例首先查看directory
目录下所有.txt文件的属性,然后使用chattr
命令添加不可修改(i)属性,最后再次查看文件的属性,可以看到属性已经被修改。这对于保护重要的文本文件非常有用。
实例10:查看并修改特定权限文件的属性
[linux@bashcommandnotfound.cn ~]$ lsattr -R | grep '^..i'
[linux@bashcommandnotfound.cn ~]$ chattr +i $(ls -l | awk '/^-r--r--r--/ {print $NF}')
[linux@bashcommandnotfound.cn ~]$ lsattr -R | grep '^..i'
这个实例首先查看所有具有不可修改(i)属性的文件,然后使用chattr
命令添加不可修改(i)属性到所有只读文件,最后再次查看所有具有不可修改(i)属性的文件,可以看到属性已经被修改。这对于保护重要的只读文件非常有用。
实例11:查看并修改特定用户文件的属性
[linux@bashcommandnotfound.cn ~]$ lsattr -R | grep '^..i'
[linux@bashcommandnotfound.cn ~]$ chattr +i $(ls -l | awk '/^root/ {print $NF}')
[linux@bashcommandnotfound.cn ~]$ lsattr -R | grep '^..i'
这个实例首先查看所有具有不可修改(i)属性的文件,然后使用chattr
命令添加不可修改(i)属性到所有root用户的文件,最后再次查看所有具有不可修改(i)属性的文件,可以看到属性已经被修改。这对于保护重要的root用户文件非常有用。
Linux lsattr命令的注意事项
lsattr
命令需要文件系统支持才能查看文件属性,一些文件系统可能不支持。- 如果出现
bash: lsattr: command not found
错误,可以尝试安装e2fsprogs
包。