简介
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’其中之一 蓝色 :目录 绿色 :可执行文件 红色 :压缩文件 浅蓝色 :链接文件 灰色 :其他文件 |
-l 长格式说明
[root@gkdaxue ~]# ll
total 4
-rw-------. 1 gkdaxue root 815 Mar 22 08:13 anaconda-ks.cfg
第一列 : 共11个,去掉首和尾共9位,每3位为一组,r表是读 (Read) 、w表示写 (Write) 、x表示执行 (eXecute)
- : 表示文件类型,Linux 有以下文件类型
-(f) : 普通文件
d : 目录文件
b : 块设备(block)
c : 字符设备(character)
l : 符号链接文件(symbolic link file)
p : 管道文件(pipe)
s : 套接字文件(socket)
rw- : 文件拥有者 (gkdaxue) 的权限(读和写)
--- : 文件所属组 (root) 拥有的权限(无权限)
--- : 其他用户拥有的权限(无权限)
. :
第二列 : 分为两种情况
如果目标为一个文件 : 文件硬链接数
如果目标为一个目录 : 表示该目录所含第一级子目录的个数(新建一个空目录,这个目录的第二字段就是2, 表示该目录下有两个子目录)
为什么新建的目录下面会有两个子目录呢?
因为每一个目录都有一个指向它本身的子目录 . 和指向它上级目录的子目录 ..
第三列 : 文件(目录)拥有者
如果某一个用户因为某种原因被删除,而该用户的文件还存在,那么查看该文件将显示一个代表用户存在前ID号的数字。
第四列 : 文件(目录)拥有者所在的组
一个用户可以加入很多个组,但是其中有一个是主组,就是显示在第4字段的名称。
第五列 : 文件所占用的空间(以字节为单位)
如果是一个文件夹,则表示该文件夹的大小。而不是文件夹以及它下面的文件的总大小。
第六列 : 文件最近一次被修改时间
第七列 : 文件名
示例
## 默认用法
[root@gkdaxue ~]# ls
anaconda-ks.cfg
## -a 查看所有文件
[root@gkdaxue ~]# ls -a
. anaconda-ks.cfg .bash_logout .bashrc .lesshst .viminfo
.. .bash_history .bash_profile .cshrc .tcshrc
## -A 查看所有文件,除了 . 和 ..
[root@gkdaxue ~]# ls -A
anaconda-ks.cfg .bash_logout .bashrc .lesshst .viminfo
.bash_history .bash_profile .cshrc .tcshrc
## -l 长列表形式展示
[root@gkdaxue ~]# ls -al
total 48
dr-xr-x---. 2 root root 4096 Mar 31 17:47 .
drwxr-xr-x. 17 root root 4096 Apr 3 05:09 ..
-rw-------. 1 root root 815 Mar 22 08:13 anaconda-ks.cfg
-rw-------. 1 root root 2823 Apr 3 07:54 .bash_history
-rw-r--r--. 1 root root 18 Dec 28 2013 .bash_logout
-rw-r--r--. 1 root root 193 Mar 31 17:33 .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-------. 1 root root 39 Apr 3 08:25 .lesshst
-rw-r--r--. 1 root root 129 Dec 28 2013 .tcshrc
-rw-------. 1 root root 5300 Mar 31 17:47 .viminfo
## -d 将目录象文件一样显示,而不是显示其下的文件
[root@gkdaxue ~]# ls -ld
dr-xr-x---. 3 root root 4096 Apr 3 08:34 .
## —R 参数 递归列出所有子目录
[root@localhost ~]# mkdir -p A/B/C
[root@localhost ~]# tree
.
├── A
│ └── B
│ └── C
└── anaconda-ks.cfg
[root@gkdaxue ~]# ll -lR A
A:
total 0
drwxr-xr-x. 3 root root 14 Apr 3 08:34 B
A/B:
total 0
drwxr-xr-x. 2 root root 6 Apr 3 08:34 C
A/B/C:
total 0
## -h 以容易理解的格式列出文件大小 (例如 1K 234M 2G)
[root@gkdaxue ~]# ll -h
total 4.0K
drwxr-xr-x. 3 root root 14 Apr 3 08:34 A
-rw-------. 1 root root 815 Mar 22 08:13 anaconda-ks.cfg
## -S 根据文件大小倒序排列
[root@gkdaxue ~]# ll -hS
total 4.0K
-rw-------. 1 root root 815 Mar 22 08:13 anaconda-ks.cfg
drwxr-xr-x. 3 root root 14 Apr 3 08:34 A
## -r 将文件以逆序显示(默认依英文字母次序)
[root@gkdaxue ~]# ls -lhSr
total 4.0K
drwxr-xr-x. 3 root root 14 Apr 3 08:34 A
-rw-------. 1 root root 815 Mar 22 08:13 anaconda-ks.cfg
## -F 在列出的文件名称后加一符号
[root@gkdaxue ~]# ls -lF /usr/bin/cat
-rwxr-xr-x. 1 root root 54048 Jan 24 2014 /usr/bin/cat*
[root@gkdaxue ~]# ls -lhF
total 4.0K
drwxr-xr-x. 3 root root 14 Apr 3 08:34 A/
-rw-------. 1 root root 815 Mar 22 08:13 anaconda-ks.cfg
## -t 根据最后的修改时间排序
[root@gkdaxue ~]# ls -l
total 4
-rw-------. 1 root root 815 Mar 22 08:13 anaconda-ks.cfg
drwxr-xr-x. 2 root root 6 Apr 3 08:44 Z
[root@gkdaxue ~]# ls -lt
total 4
drwxr-xr-x. 2 root root 6 Apr 3 08:44 Z
-rw-------. 1 root root 815 Mar 22 08:13 anaconda-ks.cfg
## -i 打印每个文件的 inode 号
[root@gkdaxue ~]# ll -i
total 4
68058510 -rw-------. 1 root root 815 Mar 22 08:13 anaconda-ks.cfg
678818 drwxr-xr-x. 2 root root 6 Apr 3 08:44 Z
## -g 类似 -l,但不列出所有者
[root@gkdaxue ~]# ll
total 4
-rw-------. 1 gkdaxue root 815 Mar 22 08:13 anaconda-ks.cfg
[root@gkdaxue ~]# ls -g
total 4
-rw-------. 1 root 815 Mar 22 08:13 anaconda-ks.cfg
## -G 不列出文件的所有组
[root@gkdaxue ~]# ll
total 4
-rw-------. 1 gkdaxue root 815 Mar 22 08:13 anaconda-ks.cfg
[root@gkdaxue ~]# ll -G
total 4
-rw-------. 1 gkdaxue 815 Mar 22 08:13 anaconda-ks.cfg
## -n 列出来文件的 UID 和 GID
[root@gkdaxue ~]# ls -l
total 4
-rw-------. 1 gkdaxue root 45 Apr 3 09:04 anaconda-ks.cfg
[root@gkdaxue ~]# ls -n
total 4
-rw-------. 1 1000 0 45 Apr 3 09:04 anaconda-ks.cfg
## --color 是否使用色彩分辨文件
## 我们使用的时候就默认发现系统已经帮我们设置了一个别名,所以我们使用会有颜色提醒
[root@gkdaxue ~]# type ls
ls is aliased to `ls --color=auto'