Linux ls 命令

发布时间 2023-04-11 22:24:55作者: 红尘过客2022

Linux ls 命令

  • ls -alih

这个是非常重要的命令,就算不做运维也必须熟练

[root@VM-12-14-centos local]# ls -alih
total 52K
  3520 drwxr-xr-x. 13 root root 4.0K Nov  5  2019 .
    14 drwxr-xr-x. 14 root root 4.0K Jan  8  2021 ..
  3521 drwxr-xr-x.  2 root root 4.0K Aug  5  2020 bin
  3522 drwxr-xr-x.  2 root root 4.0K Apr 11  2018 etc
  3523 drwxr-xr-x.  2 root root 4.0K Apr 11  2018 games
  3524 drwxr-xr-x.  2 root root 4.0K Apr 11  2018 include
  3525 drwxr-xr-x.  2 root root 4.0K Apr 11  2018 lib
  3526 drwxr-xr-x.  2 root root 4.0K Apr 11  2018 lib64
  3527 drwxr-xr-x.  2 root root 4.0K Apr 11  2018 libexec
145265 drwxr-xr-x  17 root root 4.0K Oct 24 15:49 qcloud
  3528 drwxr-xr-x.  2 root root 4.0K Apr 11  2018 sbin
  3529 drwxr-xr-x.  5 root root 4.0K Mar  7  2019 share
  3552 drwxr-xr-x.  2 root root 4.0K Apr 11  2018 src

Linux ls(英文全拼: list directory contents)命令用于显示指定工作目录下之内容(列出目前工作目录所含的文件及子目录)。

语法

 ls [-alrtAFR] [name...]

参数 :

  • -a 显示所有文件及目录 (. 开头的隐藏文件也会列出)

  • -d 只列出目录(不递归列出目录内的文件)。

  • -l 以长格式显示文件和目录信息,包括权限、所有者、大小、创建时间等。

  • -i: 索引节点(inode==书的目录) print the index number of each file(内核根据此区别文件是否同一文件)

  • -h: 以人类理解的范围显示

  • -r 倒序显示文件和目录。

  • -t 将按照修改时间排序,最新的文件在最前面。

  • -A 同 -a ,但不列出 "." (目前目录) 及 ".." (父目录)

  • -F 在列出的文件名称后加一符号;例如可执行档则加 "*", 目录则加 "/"

  • -R 递归显示目录中的所有文件和子目录。

实例

ls -l # 以长格式显示当前目录中的文件和目录
ls -a # 显示当前目录中的所有文件和目录,包括隐藏文件
ls -lh # 以人类可读的方式显示当前目录中的文件和目录大小
ls -t # 按照修改时间排序显示当前目录中的文件和目录
ls -R # 递归显示当前目录中的所有文件和子目录
ls -l /etc/****passwd # 显示/etc/passwd文件的详细信息

实例

列出根目录()下的所有目录:

# 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的文件,所有者具有读写权限,所属组和其他用户只有读取权限。