Linux ls 命令
Linux ls(英文全拼: list directory contents)命令用于显示指定工作目录下之内容(列出目前工作目录所含的文件及子目录)。
语法
ls [-alrtAFR] [name...]
参数 :
参数 | 说明 |
---|---|
-a 或 --all | 显示所有文件(包括以 . 开头的隐藏文件)。 |
-A 或 --almost-all | 显示除 . 和 .. 外的所有文件(包括隐藏文件)。 |
-l | 以长格式(详细信息)列出文件(权限、所有者、大小、修改时间等)。 |
-h 或 --human-readable | 与 -l 一起使用时,以人类可读的格式显示文件大小(如 KB、MB)。 |
-t | 按修改时间排序(最新优先)。 |
-r 或 --reverse | 反向排序(配合 -t 、-S 等使用)。 |
-S | 按文件大小排序(大文件优先)。 |
-R 或 --recursive | 递归列出子目录内容。 |
-F 或 --classify | 在文件名后附加标识符(如 / 表示目录,* 表示可执行文件)。 |
--color | 彩色输出(通常默认启用,--color=auto )。 |
-i 或 --inode | 显示文件的 inode 编号。 |
-n 或 --numeric-uid-gid | 以数字形式显示 UID 和 GID(替代用户名和组名)。 |
-d 或 --directory | 仅显示目录本身,而非其内容(常用于配合 -l )。 |
-1 | 每行只显示一个文件(默认在终端宽度不足时自动启用)。 |
-m | 以逗号分隔的列表形式显示文件。 |
-Q 或 --quote-name | 用引号括住文件名(适用于含空格的文件名)。 |
--group-directories-first | 先显示目录,后显示文件。 |
--time-style=<格式> | 自定义时间显示格式(如 +%Y-%m-%d )。 |
实例
ls -a # 显示当前目录中的所有文件和目录,包括隐藏文件
ls -lh # 以人类可读的方式显示当前目录中的文件和目录大小
ls -t # 按照修改时间排序显示当前目录中的文件和目录
ls -R # 递归显示当前目录中的所有文件和子目录
ls -l /etc/passwd # 显示/etc/passwd文件的详细信息
实例
详细列出当前目录所有文件(含隐藏文件):
ls -la
按大小反向排序文件(大文件优先):
ls -lShr
递归列出 /var/log 目录内容,并显示人类可读的文件大小:
ls -lhR /var/log
仅显示目录的详细信息(不递归):
ls -ld /etc
按修改时间排序(最新文件最后显示):
ls -ltr
列出根目录下的所有目录:
# ls / bin dev lib media net root srv upload www boot etc lib64 misc opt sbin sys usr home lost+found mnt proc selinux tmp var
将 /bin 目录以下所有目录及文件详细资料列出:
ls -lR /bin
当文件名包含空格、特殊字符或者开始字符为破折号时,可以使用反斜杠(\)进行转义,或者使用引号将文件名括起来。例如:
ls "my file.txt" # 列出文件名为"my file.txt"的文件 ls my\ file.txt # 列出文件名为"my file.txt"的文件 ls -- -filename # 列出文件名为"-filename"的文件
ls 命令还可以使用通配符进行模式匹配,例如 * 表示匹配任意字符,? 表示匹配一个字符,[...] 表示匹配指定范围内的字符。例如:
ls *.txt # 列出所有扩展名为.txt的文件 ls file?.txt # 列出文件名为file?.txt的文件,其中?表示任意一个字符 ls [abc]*.txt # 列出以a、b或c开头、扩展名为.txt的文件
列出目前工作目录下所有名称是 s 开头的文件,越新的排越后面:
ls -ltr s*
在使用 ls -l 命令时,第一列的字符表示文件或目录的类型和权限。其中第一个字符表示文件类型,例如:
- - 表示普通文件
- d 表示目录
- l 表示符号链接
- c 表示字符设备文件
- b 表示块设备文件
- s 表示套接字文件
- p 表示管道文件
在使用 ls -l 命令时,第一列的其余 9 个字符表示文件或目录的访问权限,分别对应三个字符一组的 rwx 权限。例如
:- r 表示读取权限
- w 表示写入权限
- x 表示执行权限
- - 表示没有对应权限
前三个字符表示所有者的权限,中间三个字符表示所属组的权限,后三个字符表示其他用户的权限。例如:
-rw-r--r-- 1 user group 4096 Feb 21 12:00 file.txt
表示文件名为file.txt的文件,所有者具有读写权限,所属组和其他用户只有读取权限。
查找最近修改的文件:
ls -lt | head -5
显示最近修改的 5 个文件。
统计文件数量:
ls | wc -l
统计当前目录下的文件数量(不包括隐藏文件)。
注意事项
ls 命令的输出颜色可以通过 --color 选项控制:
- 蓝色:目录
- 绿色:可执行文件
- 红色:压缩文件
- 青色:链接文件
- 黄色:设备文件
在脚本中使用 ls 时要注意,直接解析 ls 的输出可能不可靠,建议使用其他方法。
不同 Linux 发行版的 ls 命令可能有细微差别,可以通过 man ls
查看具体帮助文档。
rapattern
rap***ern@foxmail.com
参考地址
[root@localhost ~]# ls -ahl
total 28K
dr-xr-x---. 2 root root 135 Dec 16 02:34 .
dr-xr-xr-x. 17 root root 224 Dec 14 01:38 ..
-rw-------. 1 root root 1.3K Dec 14 01:38 anaconda-ks.cfg
-rw-------. 1 root root 1.2K Dec 16 02:34 .bash_history
-rw-r--r--. 1 root root 18 Dec 28 2013 .bash_logout
-rw-r--r--. 1 root root 176 Dec 28 2013 .bash_profile
-rw-r--r--. 1 root root 176 Dec 28 2013 .bashrc
-rw-r--r--. 1 root root 100 Dec 28 2013 .cshrc
-rw-r--r--. 1 root root 129 Dec 28 2013 .tcshrc
从上面可以看到,每一行都有7列,分别是:
d
表示目录,-
表示文件,l
表示链接文件,d
表示可随机存取的设备,如U盘等,c
表示一次性读取设备,如鼠标、键盘等。后9位,依次对应三种身份所拥有的权限,身份顺序为:owner、group、others,权限顺序为:readable、writable、executable。如:-r-xr-x---
的含义为当前文档是一个文件,拥有者可读、可执行,同一个群组下的用户,可读、可执行,其他人没有任何权限。rapattern
rap***ern@foxmail.com
参考地址