Linux ls 命令

Linux 命令大全 Linux 命令大全

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 -l                    # 以长格式显示当前目录中的文件和目录
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 查看具体帮助文档。

Linux 命令大全 Linux 命令大全