ls(英文全拼: list directory contents)命令用于显示指定工作目录下之内容,列出目前工作目录所含的文件及子目录。
ls [-alrtAFR] [name...]
-a 显示所有文件及目录 (. 开头的隐藏文件也会列出)
-d 只列出目录(不递归列出目录内的文件)
-l 以长格式显示文件和目录信息,包括权限、所有者、大小、创建时间等
-r 倒序显示文件和目录
-t 将按照修改时间排序,最新的文件在最前面
-A 同 -a ,但不列出 "." (目前目录) 及 ".." (父目录)
-F 在列出的文件名称后加一符号;例如可执行档则加 "*", 目录则加 "/"
-R 递归显示目录中的所有文件和子目录
下面列举了 ls 命令参数的常见组合:
ls -l # 以长格式显示当前目录中的文件和目录 ls -a # 显示当前目录中的所有文件和目录,包括隐藏文件 ls -lh # 以人类可读的方式显示当前目录中的文件和目录大小 ls -t # 按照修改时间排序显示当前目录中的文件和目录 ls -R # 递归显示当前目录中的所有文件和子目录 ls -l /etc/passwd # 显示/etc/passwd文件的详细信息
(1)列出根目录(\)下的所有目录:
hxstrive@localhost:~$ ls / bin dev home lib lib64 media opt root sbin srv tmp var boot etc init lib32 libx32 mnt proc run snap sys usr hxstrive@localhost:~$ ls -lR /bin lrwxrwxrwx 1 root root 7 Oct 26 2022 /bin -> usr/bin
(2)将 /bin 目录以下所有目录及文件详细资料列出:
hxstrive@localhost:~$ ls -lR /bin lrwxrwxrwx 1 root root 7 3月 13 2022 /bin -> usr/bin
(3)当文件名包含空格、特殊字符或者开始字符为破折号时,可以使用反斜杠(\)进行转义,或者使用引号将文件名括起来。例如:
ls "my file.txt" # 列出文件名为"my file.txt"的文件 ls my\ file.txt # 列出文件名为"my file.txt"的文件 ls -- -filename # 列出文件名为"-filename"的文件
(4)ls 命令还可以使用通配符进行模式匹配,例如 * 表示匹配任意字符,? 表示匹配一个字符,[...] 表示匹配指定范围内的字符。例如:
ls *.txt # 列出所有扩展名为.txt的文件 ls file?.txt # 列出文件名为file?.txt的文件,其中?表示任意一个字符 ls [abc]*.txt # 列出以a、b或c开头、扩展名为.txt的文件
(5)列出目前工作目录下所有名称是 s 开头的文件,越新的排越后面:
ls -ltr s*
(6)在使用 ls -l 命令时,第一列的字符串表示文件或目录的类型和权限。其中第一个字符表示文件类型,例如:
hxstrive@localhost:~$ ls -l total 56 -rw------- 1 hxstrive hxstrive 355 6月 7 12:26 DEADJOE drwxr-xr-x 2 hxstrive hxstrive 4096 6月 8 08:57 Desktop drwxr-xr-x 2 hxstrive hxstrive 4096 3月 13 2022 Documents drwxr-xr-x 3 hxstrive hxstrive 4096 4月 24 16:29 Downloads drwxr-xr-x 2 hxstrive hxstrive 4096 3月 13 2022 Music ...
以 Desktop 目录信息为例,其中:
第一列:文件类型和访问权限,例如:drwxr-xr-x
首位字母表示:文件类型(d),- 表示普通文件、d 表示目录、l 表示符号链接、c 表示字符设备文件、b 表示块设备文件、s 表示套接字文件、p 表示管道文件
二至四字母表示:表示所有者权限(rwx),- 表示没有对应全向、r-读取权限、w-写入权限、x-执行权限
五至七字母表示:表示组用户权限(r-x)
八至十字母表示:表示其他用户组的权限(r-x)
第二列:文件硬链接数或目录子目录数,如:2。因为 Desktop 是目录所以数字显示为 2。对于普通文件:表示链接数,每个新建的文件默认为 1。对于目录:表示第一级子目录数,对于空目录,默认为 2,因为每一个目录都有一个指向它本身的子目录 "." 和指向它上级目录的子目录 "…",这两个默认子目录是隐藏的,需要用 ls -a 查看。
第三列: 文件拥有者,如:hxstrive,表示文件的拥有者为 hxstrive。
第四列: 文件拥有者所在组,如:hxstrive,表示所在组也是 hxstrive。
第五列: 文件大小,如:4096,表示大小为 4096字节。文件大小单位为字节,若为一个目录,则表示目录本身的大小,不包括该目录下的文件和子目录。
第六列: 文件修改时间的月份,如:6月,表示修改月份为6月。
第七列: 文件修改时间的日期,如:8,表示日期是8日。
第八列:文件修改时间的小时和分钟,如:08:57,表示修改文件的具体时间为 8:57。
第九列: 文件名,如:Desktop,表示文件名为 Desktop。
更多关于命令详细参考手册,请使用 man 命令或者 --help 参数获取帮助信息