您的位置:首页 > 运维架构 > Linux

Linux ls 命令

2016-04-18 11:20 639 查看

0、写在前言

说明

并没有列出所有的选项,只是列出常用的选项。如果以后有用到没有记录的选项,会对该博客进行更新和维护。

联系方式

QQ:1369929127 Email:zhanglianghhh@163.com

1、概述

ls命令,列出目录的内容

2、命令格式

ls [OPTION]... [FILE]...

3、常用命令参数

只列出常用的选项

-a, --all
※※※列出所有的文件【即包括隐藏文件】

[oldboy@oldboy ~]$ ls -l
总用量 4
drwxrwxr-x 2 oldboy oldboy 4096 4月  13 13:04 dir1
-rw-rw-r-- 1 oldboy oldboy    0 4月  13 13:04 test1
[oldboy@oldboy ~]$ ls -al
总用量 28
drwx------. 3 oldboy oldboy 4096 4月  13 13:04 .
drwxr-xr-x. 3 root   root   4096 4月  11 23:42 ..
-rw-------  1 oldboy oldboy  144 4月  13 00:53 .bash_history
-rw-r--r--. 1 oldboy oldboy   18 7月  24 2015 .bash_logout
-rw-r--r--. 1 oldboy oldboy  176 7月  24 2015 .bash_profile
-rw-r--r--. 1 oldboy oldboy  124 7月  24 2015 .bashrc
drwxrwxr-x  2 oldboy oldboy 4096 4月  13 13:04 dir1
-rw-rw-r--  1 oldboy oldboy    0 4月  13 13:04 test1


-A,--almost-all ※※ 列出隐藏文件,但是不包括 . 和 ..

[oldboy@oldboy ~]$ ls -Al
total 20
-rw-------  1 oldboy oldboy  144 Apr 13 00:53 .bash_history
-rw-r--r--. 1 oldboy oldboy   18 Jul 24  2015 .bash_logout
-rw-r--r--. 1 oldboy oldboy  176 Jul 24  2015 .bash_profile
-rw-r--r--. 1 oldboy oldboy  124 Jul 24  2015 .bashrc
drwxrwxr-x  2 oldboy oldboy 4096 Apr 13 13:04 dir1
-rw-rw-r--  1 oldboy oldboy    0 Apr 13 13:04 test1


--author 和-l 使用,打印每个文件的作者

[oldboy@oldboy ~]$ ls -l
total 4
drwxrwxr-x 2 oldboy oldboy 4096 Apr 13 13:04 dir1
-rw-rw-r-- 1 oldboy root      0 Apr 13 13:04 test1
[oldboy@oldboy ~]$ ls -l --author
total 4
drwxrwxr-x 2 oldboy oldboy oldboy 4096 Apr 13 13:04 dir1
-rw-rw-r-- 1 oldboy root   oldboy    0 Apr 13 13:04 test1


-c ※ 经常和 -lt一起使用:根据改变时间排序显示。

和-l使用时,显示文件的ctime(文件属性的最后改变时间,而不是文件内容的最后修改时间)。示例如下:

[oldboy@oldboy ~]$ ls -l test1
total 4
-rw-rw-r-- 1 oldboy root      0 Apr 13 13:04 test1
[oldboy@oldboy ~]$ ls -lc
total 4
-rw-rw-r-- 1 oldboy root      0 Apr 13 13:10 test1


如果再加上 -t 选项,那么根据时间排序【时间倒序】。而不是自然排序【字典排序】

[oldboy@oldboy ~]$ ls -lt		# 修改时间排序
total 4
-rw-rw-r-- 1 oldboy oldboy    0 Apr 13 13:17 test0
drwxrwxr-x 2 oldboy oldboy 4096 Apr 13 13:04 dir1
-rw-rw-r-- 1 oldboy root      0 Apr 13 13:04 test1
[oldboy@oldboy ~]$ ls -lct		# 改变时间排序
total 4
-rw-rw-r-- 1 oldboy oldboy    0 Apr 13 13:17 test0
-rw-rw-r-- 1 oldboy root      0 Apr 13 13:10 test1
drwxrwxr-x 2 oldboy oldboy 4096 Apr 13 13:04 dir1


--color[=WHEN] 输出字带有颜色 【值为:always、never、auto】

[root@oldboy ~]# alias
alias cp='cp -i'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'


-d, --directory
※※※※※显示对应的目录本身信息,而不是目录中的内容

[oldboy@oldboy ~]$ ls -l /home/oldboy/
total 4
drwxrwxr-x 2 oldboy oldboy 4096 Apr 13 13:04 dir1
-rw-rw-r-- 1 oldboy oldboy    0 Apr 13 13:17 test0
-rw-rw-r-- 1 oldboy root      0 Apr 13 13:04 test1
-rw-rw-r-- 1 oldboy oldboy    0 Apr 13 13:17 test2
lrwxrwxrwx 1 oldboy oldboy    5 Apr 13 13:30 test4 -> test0
[oldboy@oldboy ~]$ ls -ld /home/oldboy/
drwx------. 3 oldboy oldboy 4096 Apr 13 13:30 /home/oldboy/


-f 不排序。可以使用 -aU, 不能使用-ls--color

[oldboy@oldboy ~]$ ls -f	# 无序
..  test0  .bashrc  .  test4  test2  .bash_profile  .bash_history  dir1  .bash_logout  test1
[oldboy@oldboy ~]$ ls -a
.  ..  .bash_history  .bash_logout  .bash_profile  .bashrc  dir1  test0  test1  test2  test4


-F, --classify
※※※※ 为条目追加指示符【*/=>@| 其中的一种】。如果是目录,则追加 /

[root@oldboy ~]# ls -F /dev/
MAKEDEV@         fb0         lp0                 ram0    root@
agpgart          fd@         lp1                 ram1    rtc@
block/           full        lp2                 ram10   rtc0
bsg/             fuse        lp3                 ram11   scd0@
btrfs-control    hidraw0     mapper/             ram12   sda
bus/             hpet        mcelog              ram13   sda1


--full-time 和 -l --time-style=full-iso 一样

[root@oldboy ~]# ls --full-time
total 56
-rw-------. 1 root root  1133 2016-04-09 18:01:37.173998958 +0800 anaconda-ks.cfg
-rw-r--r--. 1 root root 22179 2016-04-09 18:01:25.390998960 +0800 install.log
-rw-r--r--. 1 root root  5890 2016-04-09 17:59:55.926999022 +0800 install.log.syslog
drwxr-xr-x  2 root root  4096 2016-04-12 18:57:01.839801816 +0800 oldboy
-rw-r--r--. 1 root root   102 2016-03-14 00:35:37.087003525 +0800 oldboy.txt
-rw-r--r--  1 root root   887 2016-04-13 15:27:31.722373507 +0800 ssl.key


-g 就像 -l ,但是不会列出 属主

[oldboy@oldboy ~]$ ls -l
总用量 28
drwxrwxr-x 2 oldboy oldboy 4096 4月  13 23:08 aaa
-rw-rw-r-- 1 oldboy oldboy    1 4月  13 21:00 test0
-rw-rw-r-- 1 oldboy root      0 4月  13 13:04 test1		# 有属主
drwxrwxr-x 3 oldboy oldboy 4096 4月  15 11:06 tools
[oldboy@oldboy ~]$
[oldboy@oldboy ~]$
[oldboy@oldboy ~]$ ls -g
总用量 28
drwxrwxr-x 2 oldboy 4096 4月  13 23:08 aaa
-rw-rw-r-- 1 oldboy    1 4月  13 21:00 test0
-rw-rw-r-- 1 root      0 4月  13 13:04 test1		# 没有属主
drwxrwxr-x 3 oldboy 4096 4月  15 11:06 tools


-h, --human-readable 和-l一起使用,打印大小以人们一看懂的方式。(比如: 1K 234M 2G)

[root@oldboy ~]# ll
total 56
-rw-------. 1 root root  1133 Apr  9 18:01 anaconda-ks.cfg
-rw-r--r--. 1 root root 22179 Apr  9 18:01 install.log
[root@oldboy ~]# ll -h
total 56K
-rw-------. 1 root root 1.2K Apr  9 18:01 anaconda-ks.cfg	# 注意区别
-rw-r--r--. 1 root root  22K Apr  9 18:01 install.log


-i, --inode 打印每个文件的inode 索引

[root@oldboy ~]# ls -i
21098 anaconda-ks.cfg
13 install.log
[root@oldboy ~]# ls -li
total 56
21098 -rw-------. 1 root root  1133 Apr  9 18:01 anaconda-ks.cfg
13 -rw-r--r--. 1 root root 22179 Apr  9 18:01 install.log


-k 就像 --block-size=1K ;请仔细看下面的例子

[root@oldboy ~]# ll -hk
total 56
-rw-------. 1 root root  2 Apr  9 18:01 anaconda-ks.cfg
-rw-r--r--. 1 root root 22 Apr  9 18:01 install.log
-rw-r--r--. 1 root root  6 Apr  9 17:59 install.log.syslog
drwxr-xr-x  2 root root  4 Apr 12 18:57 oldboy
-rw-r--r--. 1 root root  1 Mar 14 00:35 oldboy.txt
[root@oldboy ~]# ll -h
total 56K
-rw-------. 1 root root 1.2K Apr  9 18:01 anaconda-ks.cfg
-rw-r--r--. 1 root root  22K Apr  9 18:01 install.log
-rw-r--r--. 1 root root 5.8K Apr  9 17:59 install.log.syslog
drwxr-xr-x  2 root root 4.0K Apr 12 18:57 oldboy
-rw-r--r--. 1 root root  102 Mar 14 00:35 oldboy.txt


-l 长格式打印

[root@oldboy ~]# ls -l
total 60
drwxr-xr-x  2 root root  4096 Apr 15 18:51 aaa
-rw-------. 1 root root  1133 Apr  9 18:01 anaconda-ks.cfg
-rw-r--r--. 1 root root 22179 Apr  9 18:01 install.log
-rw-rw-r--  1 root root     1 Apr  13 21:00 test0
lrwxrwxrwx  1 root root     5 Apr  13 13:30 test4 -> test0


上面的7列信息分别为:

第一列:第一个字符代表文件类型

-:普通文件(f)

d:目录文件

b:块设备文件(block)

c:字符设备文件(character)

l:符号链接文件(symboliclink file)

p:命令管道文件(pipe)

s:套接字文件(socket)

后面9位是该文件权限:每三位一组 rwx(读写执行), - 代表没有这个权限。

第二列:文件的硬链接次数。普通文件至少一次链接,目录至少两次链接(分别为 . ..)

第三列:文件的属主

第四列:文件的属组,即用户组

第五列:文件大小,单位是字节

第六列:文件最近修改时间,修改文件意味着对其文件内或子目录的增添和修改

第七列:文件名

对于目录来说 rwx

其中 r :代表读取目录中的内容

w:删除、修改目录里面文件名的权限【必须配合 x
执行才可以】


x:代表能否进入到目录里面去

-m 使用逗号分隔

[oldboy@oldboy ~]$ ls -m
AAA.txt, aaa.tem, aaac, bbb


-n,--numeric-uid-gid 就像-l ,但是显示属主和属组的数字,而不是名称

[root@oldboy ~]# ls -l
total 60
drwxr-xr-x  2 root root  4096 Apr 15 18:51 aaa
-rw-------. 1 root root  1133 Apr  9 18:01 anaconda-ks.cfg
[root@oldboy ~]# ls -n
total 60
drwxr-xr-x  2 0 0  4096 Apr 15 18:51 aaa
-rw-------. 1 0 0  1133 Apr  9 18:01 anaconda-ks.cfg


-p, --indicator-style=slash 如果是目录,则追加 /

[oldboy@oldboy ~]$ ll -p
total 36
-rw-rw-r-- 2 oldboy oldboy    9 Apr 16 19:37 BBB.txt
-rw-rw-r-- 1 oldboy oldboy    0 Apr 15 18:57 aaa.tem
drwxrwxr-x 2 oldboy oldboy 4096 Apr 15 18:58 aaac/
drwxrwxr-x 2 oldboy oldboy 4096 Apr 13 23:08 bbb/
drwxrwxr-x 3 oldboy oldboy 4096 Apr 13 23:08 ccc/


-r, --reverse 反向排序

[root@oldboy ~]# ls -l
total 60
drwxr-xr-x  2 root root  4096 Apr 15 18:51 aaa
-rw-------. 1 root root  1133 Apr  9 18:01 anaconda-ks.cfg
[root@oldboy ~]# ls -lr
total 60
-rw-------. 1 root root  1133 Apr  9 18:01 anaconda-ks.cfg
drwxr-xr-x  2 root root  4096 Apr 15 18:51 aaa


-R, --recursive
※※※※※※递归列出 【请仔细查看下面的例子,很清楚,明白】

[root@oldboy ~]# ls -lR
.:
total 60
drwxr-xr-x  2 root root  4096 Apr 15 19:03 aaa
-rw-------. 1 root root  1133 Apr  9 18:01 anaconda-ks.cfg

./aaa:
total 0
-rw-r--r-- 1 root root 0 Apr 15 19:03 test
-rw-r--r-- 1 root root 0 Apr 15 19:03 test2


-s, --size 打印每个文件所占用【被分配】的block大小。

[root@oldboy ~]# ll -sh /var/log/
total 2.3M
4.0K drwxr-xr-x. 2 root root 4.0K Apr  9 18:06 ConsoleKit
8.0K -rw-------. 1 root root 4.5K Apr  9 18:01 anaconda.ifcfg.log
24K -rw-------. 1 root root  23K Apr  9 18:01 anaconda.log
32K -rw-------. 1 root root  31K Apr  9 18:01 anaconda.program.log
152K -rw-------. 1 root root 150K Apr  9 18:01 anaconda.storage.log


-S 根据文件大小排序

[root@oldboy ~]# ll -hS
total 60K
-rw-r--r--. 1 root root  22K Apr  9 18:01 install.log
-rw-r--r--. 1 root root 5.8K Apr  9 17:59 install.log.syslog
drwxr-xr-x  2 root root 4.0K Apr 15 19:03 aaa
-rw-------. 1 root root 1.2K Apr  9 18:01 anaconda-ks.cfg
-rw-r--r--  1 root root  951 Apr 13 15:26 xxx.key


--time-style=STYLE 和-l 一起使用。 STYLE:full-iso, long-iso, iso, locale

[root@oldboy ~]# ll --time-style=full-iso	#推荐
total 60
drwxr-xr-x  2 root root  4096 2016-04-15 19:03:55.099493719 +0800 aaa
-rw-------. 1 root root  1133 2016-04-09 18:01:37.173998958 +0800 anaconda-ks.cfg
-rw-r--r--. 1 root root 22179 2016-04-09 18:01:25.390998960 +0800 install.log
[root@oldboy ~]# ll --time-style=long-iso	#推荐
total 60
drwxr-xr-x  2 root root  4096 2016-04-15 19:03 aaa
-rw-------. 1 root root  1133 2016-04-09 18:01 anaconda-ks.cfg
-rw-r--r--. 1 root root 22179 2016-04-09 18:01 install.log
[root@oldboy ~]# ll --time-style=iso
total 60
drwxr-xr-x  2 root root  4096 04-15 19:03 aaa
-rw-------. 1 root root  1133 04-09 18:01 anaconda-ks.cfg
-rw-r--r--. 1 root root 22179 04-09 18:01 install.log
[root@oldboy ~]# ll --time-style=locale
total 60
drwxr-xr-x  2 root root  4096 Apr 15 19:03 aaa
-rw-------. 1 root root  1133 Apr  9 18:01 anaconda-ks.cfg
-rw-r--r--. 1 root root 22179 Apr  9 18:01 install.log
[root@oldboy ~]# ll
total 60
drwxr-xr-x  2 root root  4096 Apr 15 19:03 aaa
-rw-------. 1 root root  1133 Apr  9 18:01 anaconda-ks.cfg
-rw-r--r--. 1 root root 22179 Apr  9 18:01 install.log


-t 根据修改时间排序【时间倒序】

[root@oldboy ~]# ll -t
total 60
drwxr-xr-x  2 root root  4096 Apr 15 19:03 aaa
-rw-r--r--  1 root root   887 Apr 13 15:27 ssl.key
-rw-r--r--  1 root root   951 Apr 13 15:26 xxx.key
[root@oldboy ~]# ll -rt			# 时间正序
total 60
-rw-r--r--  1 root root   951 Apr 13 15:26 xxx.key
-rw-r--r--  1 root root   887 Apr 13 15:27 ssl.key
drwxr-xr-x  2 root root  4096 Apr 15 19:03 aaa


-u 访问时间。和 -lt 一起使用代表:根据访问时间排序

[root@oldboy ~]# ll -t
total 60
drwxr-xr-x  2 root root  4096 Apr 15 19:03 aaa
-rw-r--r--  1 root root   887 Apr 13 15:27 ssl.key
drwxr-xr-x  2 root root  4096 Apr 12 18:57 oldboy
-rw-r--r--. 1 root root 22179 Apr  9 18:01 install.log
[root@oldboy ~]# ll -ut
total 60
-rw-r--r--. 1 root root 22179 Apr 15 19:15 install.log
drwxr-xr-x  2 root root  4096 Apr 15 19:04 aaa
drwxr-xr-x  2 root root  4096 Apr 15 19:03 oldboy
-rw-r--r--  1 root root   887 Apr 13 15:27 ssl.key


4、常用示例

1、可以同时查看多个文件

[root@oldboy ~]# ls -l ssl.key xxx.key  	# 支持同时查看多个文件
-rw-r--r-- 1 root root 887 Apr 13 15:27 ssl.key
-rw-r--r-- 1 root root 951 Apr 13 15:26 xxx.key


2、支持通配符

注意:是通配符而不是正则

[root@oldboy ~]# ls -l install*
-rw-r--r--. 1 root root 22179 Apr  9 18:01 install.log
-rw-r--r--. 1 root root  5890 Apr  9 17:59 install.log.syslog
[root@oldboy ~]# ls -l *.key
-rw-r--r-- 1 root root 887 Apr 13 15:27 ssl.key
-rw-r--r-- 1 root root 951 Apr 13 15:26 xxx.key


更多示例参见上面选项中的示例

5、命令所在位置和类型

[root@oldboy ~]# which ls
alias ls='ls --color=auto'
/bin/ls
[root@oldboy ~]# type ls
ls is aliased to `ls --color=auto'


6、另请参见

1、Linux ls 命令
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: