简介

ls命令就是list的缩写,用来打印出当前目录的清单。如果ls指定其他目录那么就会显示指定目录里的文件及文件夹清单。 通过ls 命令不仅可以查看linux文件夹包含的文件而且可以查看文件权限(包括目录、文件夹、文件权限)查看目录信息等等。
默认状态下,ls命令会列出当前目录的内容。

命令格式

ls [OPTIONS…] [FILE]…

常用参数

-a 显示所有文件及目录 (包括以“.”开头的隐藏文件)
-A 同 -a ,但不列出 “.” (当前目录) 及 “..” (父目录)
-l 使用长格式列出文件及目录信息
-d 将目录像文件一样显示,而不是显示其下的文件, 通常要与 -l 选项连用
-R 递归列出所有子目录
-h 以容易理解的格式列出文件大小 (例如 1K 234M 2G)
-S 根据文件大小倒序排列
-r 将文件以逆序显示(默认依英文字母次序)
-F 在列出的文件名称后加一符号;例如可执行档则加 “*”, 目录则加 “/“
-t 根据最后的修改时间排序
-i 打印每个文件的 inode 号
-g 类似 -l,但不列出所有者
-G 不列出文件所有组
-n 同 -l, 但是列出来 UID 和 GID
—color[=WHEN] 控制是否使用色彩分辨文件。WHEN 可以是’never’、’always’或’auto’其中之一
蓝色 :目录
绿色 :可执行文件
红色 :压缩文件
浅蓝色 :链接文件
灰色 :其他文件

image.png

-l 长格式说明

  1. [root@gkdaxue ~]# ll
  2. total 4
  3. -rw-------. 1 gkdaxue root 815 Mar 22 08:13 anaconda-ks.cfg
  4. 第一列 : 11个,去掉首和尾共9位,每3位为一组,r表是读 (Read) w表示写 (Write) x表示执行 (eXecute)
  5. - : 表示文件类型,Linux 有以下文件类型
  6. -(f) : 普通文件
  7. d : 目录文件
  8. b : 块设备(block)
  9. c : 字符设备(character)
  10. l : 符号链接文件(symbolic link file)
  11. p : 管道文件(pipe)
  12. s : 套接字文件(socket)
  13. rw- : 文件拥有者 (gkdaxue) 的权限(读和写)
  14. --- : 文件所属组 (root) 拥有的权限(无权限)
  15. --- : 其他用户拥有的权限(无权限)
  16. . :
  17. 第二列 : 分为两种情况
  18. 如果目标为一个文件 : 文件硬链接数
  19. 如果目标为一个目录 : 表示该目录所含第一级子目录的个数(新建一个空目录,这个目录的第二字段就是2, 表示该目录下有两个子目录)
  20. 为什么新建的目录下面会有两个子目录呢?
  21. 因为每一个目录都有一个指向它本身的子目录 . 和指向它上级目录的子目录 ..
  22. 第三列 : 文件(目录)拥有者
  23. 如果某一个用户因为某种原因被删除,而该用户的文件还存在,那么查看该文件将显示一个代表用户存在前ID号的数字。
  24. 第四列 : 文件(目录)拥有者所在的组
  25. 一个用户可以加入很多个组,但是其中有一个是主组,就是显示在第4字段的名称。
  26. 第五列 : 文件所占用的空间(以字节为单位)
  27. 如果是一个文件夹,则表示该文件夹的大小。而不是文件夹以及它下面的文件的总大小。
  28. 第六列 : 文件最近一次被修改时间
  29. 第七列 : 文件名

示例

  1. ## 默认用法
  2. [root@gkdaxue ~]# ls
  3. anaconda-ks.cfg
  4. ## -a 查看所有文件
  5. [root@gkdaxue ~]# ls -a
  6. . anaconda-ks.cfg .bash_logout .bashrc .lesshst .viminfo
  7. .. .bash_history .bash_profile .cshrc .tcshrc
  8. ## -A 查看所有文件,除了 . 和 ..
  9. [root@gkdaxue ~]# ls -A
  10. anaconda-ks.cfg .bash_logout .bashrc .lesshst .viminfo
  11. .bash_history .bash_profile .cshrc .tcshrc
  12. ## -l 长列表形式展示
  13. [root@gkdaxue ~]# ls -al
  14. total 48
  15. dr-xr-x---. 2 root root 4096 Mar 31 17:47 .
  16. drwxr-xr-x. 17 root root 4096 Apr 3 05:09 ..
  17. -rw-------. 1 root root 815 Mar 22 08:13 anaconda-ks.cfg
  18. -rw-------. 1 root root 2823 Apr 3 07:54 .bash_history
  19. -rw-r--r--. 1 root root 18 Dec 28 2013 .bash_logout
  20. -rw-r--r--. 1 root root 193 Mar 31 17:33 .bash_profile
  21. -rw-r--r--. 1 root root 176 Dec 28 2013 .bashrc
  22. -rw-r--r--. 1 root root 100 Dec 28 2013 .cshrc
  23. -rw-------. 1 root root 39 Apr 3 08:25 .lesshst
  24. -rw-r--r--. 1 root root 129 Dec 28 2013 .tcshrc
  25. -rw-------. 1 root root 5300 Mar 31 17:47 .viminfo
  26. ## -d 将目录象文件一样显示,而不是显示其下的文件
  27. [root@gkdaxue ~]# ls -ld
  28. dr-xr-x---. 3 root root 4096 Apr 3 08:34 .
  29. ## —R 参数 递归列出所有子目录
  30. [root@localhost ~]# mkdir -p A/B/C
  31. [root@localhost ~]# tree
  32. .
  33. ├── A
  34. └── B
  35. └── C
  36. └── anaconda-ks.cfg
  37. [root@gkdaxue ~]# ll -lR A
  38. A:
  39. total 0
  40. drwxr-xr-x. 3 root root 14 Apr 3 08:34 B
  41. A/B:
  42. total 0
  43. drwxr-xr-x. 2 root root 6 Apr 3 08:34 C
  44. A/B/C:
  45. total 0
  46. ## -h 以容易理解的格式列出文件大小 (例如 1K 234M 2G)
  47. [root@gkdaxue ~]# ll -h
  48. total 4.0K
  49. drwxr-xr-x. 3 root root 14 Apr 3 08:34 A
  50. -rw-------. 1 root root 815 Mar 22 08:13 anaconda-ks.cfg
  51. ## -S 根据文件大小倒序排列
  52. [root@gkdaxue ~]# ll -hS
  53. total 4.0K
  54. -rw-------. 1 root root 815 Mar 22 08:13 anaconda-ks.cfg
  55. drwxr-xr-x. 3 root root 14 Apr 3 08:34 A
  56. ## -r 将文件以逆序显示(默认依英文字母次序)
  57. [root@gkdaxue ~]# ls -lhSr
  58. total 4.0K
  59. drwxr-xr-x. 3 root root 14 Apr 3 08:34 A
  60. -rw-------. 1 root root 815 Mar 22 08:13 anaconda-ks.cfg
  61. ## -F 在列出的文件名称后加一符号
  62. [root@gkdaxue ~]# ls -lF /usr/bin/cat
  63. -rwxr-xr-x. 1 root root 54048 Jan 24 2014 /usr/bin/cat*
  64. [root@gkdaxue ~]# ls -lhF
  65. total 4.0K
  66. drwxr-xr-x. 3 root root 14 Apr 3 08:34 A/
  67. -rw-------. 1 root root 815 Mar 22 08:13 anaconda-ks.cfg
  68. ## -t 根据最后的修改时间排序
  69. [root@gkdaxue ~]# ls -l
  70. total 4
  71. -rw-------. 1 root root 815 Mar 22 08:13 anaconda-ks.cfg
  72. drwxr-xr-x. 2 root root 6 Apr 3 08:44 Z
  73. [root@gkdaxue ~]# ls -lt
  74. total 4
  75. drwxr-xr-x. 2 root root 6 Apr 3 08:44 Z
  76. -rw-------. 1 root root 815 Mar 22 08:13 anaconda-ks.cfg
  77. ## -i 打印每个文件的 inode 号
  78. [root@gkdaxue ~]# ll -i
  79. total 4
  80. 68058510 -rw-------. 1 root root 815 Mar 22 08:13 anaconda-ks.cfg
  81. 678818 drwxr-xr-x. 2 root root 6 Apr 3 08:44 Z
  82. ## -g 类似 -l,但不列出所有者
  83. [root@gkdaxue ~]# ll
  84. total 4
  85. -rw-------. 1 gkdaxue root 815 Mar 22 08:13 anaconda-ks.cfg
  86. [root@gkdaxue ~]# ls -g
  87. total 4
  88. -rw-------. 1 root 815 Mar 22 08:13 anaconda-ks.cfg
  89. ## -G 不列出文件的所有组
  90. [root@gkdaxue ~]# ll
  91. total 4
  92. -rw-------. 1 gkdaxue root 815 Mar 22 08:13 anaconda-ks.cfg
  93. [root@gkdaxue ~]# ll -G
  94. total 4
  95. -rw-------. 1 gkdaxue 815 Mar 22 08:13 anaconda-ks.cfg
  96. ## -n 列出来文件的 UID 和 GID
  97. [root@gkdaxue ~]# ls -l
  98. total 4
  99. -rw-------. 1 gkdaxue root 45 Apr 3 09:04 anaconda-ks.cfg
  100. [root@gkdaxue ~]# ls -n
  101. total 4
  102. -rw-------. 1 1000 0 45 Apr 3 09:04 anaconda-ks.cfg
  103. ## --color 是否使用色彩分辨文件
  104. ## 我们使用的时候就默认发现系统已经帮我们设置了一个别名,所以我们使用会有颜色提醒
  105. [root@gkdaxue ~]# type ls
  106. ls is aliased to `ls --color=auto'