前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux每日一令:ls命令

Linux每日一令:ls命令

作者头像
瑞新
发布2020-07-07 14:42:11
4.3K0
发布2020-07-07 14:42:11
举报

1、命令简介 ls(list 列出目录内容)命令用来列出显示指定目录里的文件及文件夹清单,缺省下ls用来打印出当前目录的清单。通过ls 命令不仅可以查看linux文件夹包含的文件,而且可以查看文件权限、大小、更改时间等等

2、用法 ls [OPTION]… [FILE]… 3、选项

-a 列出目录下的所有文件,包括以 . 开头的隐含文件。 -A 显示除“.”和“..”外的所有文件。 -b 把文件名中不可输出的字符用反斜杠加字符编号(就象在C语言里一样)的形式列出。 -B 不输出以“~”结尾的备份文件。 -c 与“-lt”选项连用时,按照文件状态时间排序输出目录内容,排序的依据是文件的索引节点中的ctime字段。与“-l”选项连用时,则显示状态改变时间,并以名称排序;其他根据ctime排揎 -C 多列显示输出结果,纵向排序,这是默认选项。 --color显示彩色文件名 [always|never|auto] -d 将目录像文件一样显示,而不是显示其下的文件。 -e 输出时间的全部信息,而不是输出简略信息。 -f 此参数的效果和同时指定“aU”参数相同,并关闭“lst”参数的效果; -F 在文件名后附上一个字符以说明该文件的类型,“*”表示可执行的普通 文件;“/”表示目录;“@”表示符号链接;“|”表示FIFOs;“=”表示套接字---g 类似于-l 但是不列出owner。 -G 输出文件的组的信息。 -h 和-l一起,以human-readable的格式输出大小信息 -i --inode输出文件节点的索引信息。 -k 以 k 字节的形式表示文件的大小。 -l 列出文件的详细信息。 -L 列出链接文件名而不是链接到的文件。 -m 横向输出文件名,并以“,”作分格符。 -n 用数字的 UID,GID 代替名称。 -N 不限制文件长度。 -o 显示文件的除组信息外的详细信息。 -p 文件夹后添加/ -q 用?代替不可输出的字符。 -Q 把输出的文件名用双引号括起来。 -r 对目录反向排序。 -R 列出所有子目录下的文件。 -s 在每个文件名后输出该文件的大小,单位为block。 -S 以文件大小排序。 -t 以时间排序。 -u 与“-lt”选项连用时,按照访问时间排序输出目录内容。与“-l”选项连用时,则显示访问时间,并以名称排序;其他根据访问时间排序 -U 对输出的文件不排序。 -x 按列输出,横向排序。 -X 以文件的扩展名(最后一个 . 后的字符)排序。 -1 一行只输出一个文件。 --help 在标准输出上显示帮助信息。 --version 在标准输出上输出版本信息并退出。

4、实例

  1. 不带任何选项列出文件

不带选项的ls命令来光秃秃地列出文件和目录,我们是不能看到像文件类型、大小、修改日期和时间、权限以及链接这样具体的信息的。

代码语言:javascript
复制
[root@cent6 tmp]# ls
hsperfdata_root  nginx_log_stat  pulse-IhiwHnejlPBk  tomcat-redis-session-manager
  1. 带–l 选项列出文件列表
代码语言:javascript
复制
 [root@cent6 tmp]# ls -l
 total 16
 drwxr-xr-x  2 root  root  4096 Apr  9 09:01 hsperfdata_root
 -rw-r–r--. 1 root  root     4 Mar 22 17:58 nginx_log_stat
 drwx------. 2 cloud cloud 4096 Feb 16  2015 pulse-IhiwHnejlPBk
 drwxr-xr-x. 3 root  root  4096 Feb 24 21:32 tomcat-redis-session-manager

可以看到,用ls -l命令查看某一个目录会得到一个7个字段的列表。

第1行:总计(total) Total后面的数字是指当前目录下所有文件所占用的空间总和,单位kb。可以使用ls –lh查看,

第1字段: 文件属性字段

文件属性字段总共有10个字母组成;第一个字符代表文件的类型。

“-”表示该文件是一个普通文件 “d”表示该文件是一个目录,字母"d",是dirtectory(目录)的缩写 “l”表示该文件是一个链接文件。字母"l"是link(链接)的缩写,类似于windows下的快捷方式 “b”的表示块设备文件(block),一般置于/dev目录下,设备文件是普通文件和程序访问硬件设备的入口,是很特殊的文件。,如硬盘、光盘等。最小数据传输单位为一个数据块(通常一个数据块的大小为512字节) “c”表示该文件是一个字符设备文件(character),一般置于/dev目录下,一次传输一个字节的设备被称为字符设备,如键盘、字符终端等,传输数据的最小单位为一个字节。 “p”表示该文件为命令管道文件。与shell编程有关的文件。 “s”表示该文件为sock文件。与shell编程有关的文件。

第2字段:如果是一个文件,此时这一字段表示这个文件所具有的硬链接数;如果是一个目录,则第2字段表示该目录所含子目录的个数。新建一个空目录,这个目录的第二字段就是2,表示该目录下有两个子目录。为什么新建的目录下面会有两个子目录呢?因为每一个目录都有一个指向它本身的子目录"。" 和指向它上级目录的子目录"。。",

第3字段:文件(目录)拥有者

第4字段:文件(目录)拥有者所在的组

第5字段: 文件所占用的空间(以字节为单位)

第6字段:文件(目录)最近访问(修改)时间

第7字段:文件名

  1. 计算当前目录下的文件数和目录数
  2. 用 -lh 选项来以易读方式列出文件
代码语言:javascript
复制
[root@cent6 ~]# ls -lh
 total 16K
 -rwxr-xr-x. 1 root root 1.3K Feb 16  2015 anaconda-ks.cfg
 -rwxr-xr-x. 1 root root 9.0K Feb 16  2015 install.log.syslog

5. 浏览隐藏文件

列出所有文件包括以‘.’开头的隐藏文件。

代码语言:javascript
复制
[root@cent6 ~]# ls -a
 .   anaconda-ks.cfg  .bash_logout   .bashrc  .cshrc  .gconfd  install.log.syslog

6. 列出目录信息

用ls -l命令列出/tmp目录下的文件,其中-ld参数可以只显示/tmp目录的信息。

代码语言:javascript
复制
[root@cent6 ~]# ls -ld /tmp
 drwxrwxrwt. 7 root root 4096 Apr 12 20:34 /tmp

7. 以尾部以‘/’字符结尾的方式列出文件和目录

使用 ls 命令的 -F 选项,会在每个目录的末尾添加“/”字符显示。

代码语言:javascript
复制
[root@cent6 ~]# ls -F
 anaconda-ks.cfg*  directory/  install.log.syslog*

8. 只列出文件下的子目录

利用使用-F选项时,目录以/结尾

代码语言:javascript
复制
[root@zabbix zabbix]# ls -F |grep /$
 alertscripts/
 web/
 zabbix_agentd.d/

利用使用-l选项时,目录以d开头

代码语言:javascript
复制
[root@zabbix zabbix]# ls -l |grep “^d”
 drwxrwxrwx 2 root   root      97 Jan 28 09:23 alertscripts
 drwxr-x— 2 apache apache    54 Feb 17 21:10 web
 drwxr-xr-x 2 root   root      45 Feb 17 21:10 zabbix_agentd.d

9. 按文件大小排序

带-lS组合选项能按文件从大到小的次序显示。

代码语言:javascript
复制
[root@cent6 ~]# ls -lS
 total 20
 -rwxr-xr-x. 1 root root 9154 Feb 16  2015 install.log.syslog
 drwxr-xr-x  2 root root 4096 Apr 12 21:25 directory
 -rwxr-xr-x. 1 root root 1264 Feb 16  2015 anaconda-ks.cfg

10.列出当前目录中所有以“zabbix”开头的目录和文件的详细内容

代码语言:javascript
复制
[root@zabbix zabbix]# ls zabbix*
 zabbix_agentd.conf  zabbix_java_gateway.conf  zabbix_java_gateway_logback.xml  zabbix_server.conf  zabbix_server.conf_bak  zabbix_server.conf.rpmnew_bak
zabbix_agentd.d:
 userparameter_mysql.conf

11. 倒序列出文件

ls -r 选项能以倒序方式显示文件和目录。

代码语言:javascript
复制
[root@cent6 ~]# ls -r
 install.log.syslog  directory  anaconda-ks.cfg

12. 以修改时间列出,最近修改的在上面

代码语言:javascript
复制
[root@cent6 ~]# ls -lt
 total 20
 drwxr-xr-x  2 root root 4096 Apr 12 21:25 directory
 -rwxr-xr-x. 1 root root 1264 Feb 16  2015 anaconda-ks.cfg
 -rwxr-xr-x. 1 root root 9154 Feb 16  2015 install.log.syslog

13. 以修改时间倒序列出

带-ltr组合选项能以文件或目录的最新修改时间的次序来显示它们。

代码语言:javascript
复制
[root@cent6 ~]# ls -ltr
 total 20
 -rwxr-xr-x. 1 root root 9154 Feb 16  2015 install.log.syslog
 -rwxr-xr-x. 1 root root 1264 Feb 16  2015 anaconda-ks.cfg
 drwxr-xr-x  2 root root 4096 Apr 12 21:25 directory

14.指定文件时间输出格式

复制代码

代码语言:javascript
复制
 [root@zabbix zabbix]# ls -lt --time-style=long-iso
 total 68
 -rw-r–r-- 1 root   root   14938 2016-04-14 11:48 zabbix_server.conf
 drwxr-xr-x 2 root   root      45 2016-02-17 21:10 zabbix_agentd.d
 drwxr-x— 2 apache apache    54 2016-02-17 21:10 web
 -rw-r–r-- 1 root   root   10341 2016-02-16 00:16 zabbix_agentd.conf
 -rw-r–r-- 1 root   root     813 2016-02-16 00:16 zabbix_java_gateway.conf
 -rw-r–r-- 1 root   root     770 2016-02-16 00:16 zabbix_java_gateway_logback.xml
 -rw-r----- 1 root   zabbix 14912 2016-02-16 00:16 zabbix_server.conf.rpmnew_bak
 -rw-r----- 1 root   zabbix 13657 2016-02-04 10:19 zabbix_server.conf_bak
 drwxrwxrwx 2 root   root      97 2016-01-28 09:23 alertscripts

复制代码 更详细的时间

复制代码

代码语言:javascript
复制
 [root@zabbix zabbix]# ls -tl --time-style=full-iso
 total 68
 -rw-r–r-- 1 root   root   14938 2016-04-14 11:48:26.231666438 +0800 zabbix_server.conf
 drwxr-xr-x 2 root   root      45 2016-02-17 21:10:03.471004045 +0800 zabbix_agentd.d
 drwxr-x— 2 apache apache    54 2016-02-17 21:10:00.024943223 +0800 web
 -rw-r–r-- 1 root   root   10341 2016-02-16 00:16:47.000000000 +0800 zabbix_agentd.conf
 -rw-r–r-- 1 root   root     813 2016-02-16 00:16:47.000000000 +0800 zabbix_java_gateway.conf
 -rw-r–r-- 1 root   root     770 2016-02-16 00:16:47.000000000 +0800 zabbix_java_gateway_logback.xml
 -rw-r----- 1 root   zabbix 14912 2016-02-16 00:16:47.000000000 +0800 zabbix_server.conf.rpmnew_bak
 -rw-r----- 1 root   zabbix 13657 2016-02-04 10:19:44.837012771 +0800 zabbix_server.conf_bak
 drwxrwxrwx 2 root   root      97 2016-01-28 09:23:44.034478732 +0800 alertscripts

15. 递归列出子目录

ls -R 选项能递归列出子目录

代码语言:javascript
复制
 [root@cent6 ~]# ls -lR
 .:
 total 20
 -rwxr-xr-x. 1 root root 1264 Feb 16  2015 anaconda-ks.cfg
 drwxr-xr-x  2 root root 4096 Apr 12 21:25 directory
 -rwxr-xr-x. 1 root root 9154 Feb 16  2015 install.log.syslog
./directory:
 total 0
 -rw-r–r-- 1 root root 0 Apr 12 21:25 subtext.txt

16.列出当前目录下的所有文件(包括隐藏文件)的绝对路径, 对目录不做递归

复制代码

代码语言:javascript
复制

 [root@zabbix zabbix]# find $PWD -maxdepth 1 | xargs ls -ld
 drwxr-xr-x 5 root   root    4096 Apr 14 11:48 /etc/zabbix
 drwxrwxrwx 2 root   root      97 Jan 28 09:23 /etc/zabbix/alertscripts
 drwxr-x— 2 apache apache    54 Feb 17 21:10 /etc/zabbix/web
 -rw-r–r-- 1 root   root   10341 Feb 16 00:16 /etc/zabbix/zabbix_agentd.conf
 drwxr-xr-x 2 root   root      45 Feb 17 21:10 /etc/zabbix/zabbix_agentd.d
 -rw-r–r-- 1 root   root     813 Feb 16 00:16 /etc/zabbix/zabbix_java_gateway.conf
 -rw-r–r-- 1 root   root     770 Feb 16 00:16 /etc/zabbix/zabbix_java_gateway_logback.xml
 -rw-r–r-- 1 root   root   14938 Apr 14 11:48 /etc/zabbix/zabbix_server.conf
 -rw-r----- 1 root   zabbix 13657 Feb  4 10:19 /etc/zabbix/zabbix_server.conf_bak
 -rw-r----- 1 root   zabbix 14912 Feb 16 00:16 /etc/zabbix/zabbix_server.conf.rpmnew_bak

17.递归列出当前目录下的所有文件(包括隐藏文件)的绝对路径

代码语言:javascript
复制
 [root@zabbix zabbix]# find $PWD | xargs ls -ld
 drwxr-xr-x 5 root   root    4096 Apr 14 11:48 /etc/zabbix
 drwxrwxrwx 2 root   root      97 Jan 28 09:23 /etc/zabbix/alertscripts
 -rwxrwxrwx 1 root   root    2924 Jan 28 09:23 /etc/zabbix/alertscripts/sendim.py
 -rwxrwxrwx 1 root   root     835 Jan 27 06:51 /etc/zabbix/alertscripts/sendmail.py
 -rwxrwxrwx 1 root   root     611 Jan 27 06:51 /etc/zabbix/alertscripts/sendsms.sh
 -rwxrwxrwx 1 root   root    2930 Jan 27 06:51 /etc/zabbix/alertscripts/sendwechat.py
 drwxr-x— 2 apache apache    54 Feb 17 21:10 /etc/zabbix/web
 -rw-r–r-- 1 root   root    1036 Feb 15 20:25 /etc/zabbix/web/maintenance.inc.php
 -rw-r–r-- 1 apache apache   431 Jan 27 06:27 /etc/zabbix/web/zabbix.conf.php
 -rw-r–r-- 1 root   root   10341 Feb 16 00:16 /etc/zabbix/zabbix_agentd.conf
 drwxr-xr-x 2 root   root      45 Feb 17 21:10 /etc/zabbix/zabbix_agentd.d
 -rw-r–r-- 1 root   root    1517 Feb 16 00:16 /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf
 -rw-r–r-- 1 root   root     813 Feb 16 00:16 /etc/zabbix/zabbix_java_gateway.conf
 -rw-r–r-- 1 root   root     770 Feb 16 00:16 /etc/zabbix/zabbix_java_gateway_logback.xml
 -rw-r–r-- 1 root   root   14938 Apr 14 11:48 /etc/zabbix/zabbix_server.conf
 -rw-r----- 1 root   zabbix 13657 Feb  4 10:19 /etc/zabbix/zabbix_server.conf_bak
 -rw-r----- 1 root   zabbix 14912 Feb 16 00:16 /etc/zabbix/zabbix_server.conf.rpmnew_bak

18. 显示文件或目录的索引节点号

带-i选项能列出文件或目录的索引节点号。索引节点(index inode简称为“inode”)是Linux中一个特殊的概念,具有相同的索引节点号的两个文本本质上是同一个文件(除文件名不同外)。

代码语言:javascript
复制
[root@cent6 ~]# ls -i
 1058854 anaconda-ks.cfg  1061385 directory  1048579 install.log.syslog

19. 显示文件的UID和GID

用ls -n命令来显示文件和目录的UID和GID(root的均为0)

代码语言:javascript
复制
[root@cent6 ~]# ls -n
 total 20
 -rwxr-xr-x. 1 0 0 1264 Feb 16  2015 anaconda-ks.cfg
 drwxr-xr-x  2 0 0 4096 Apr 12 21:25 directory
 -rwxr-xr-x. 1 0 0 9154 Feb 16  2015 install.log.syslog

20. 水平输出文件列表,以逗号分隔

代码语言:javascript
复制
[root@cent6 ~]# ls -m
 anaconda-ks.cfg, directory, install.log.syslog

21. 列出文件并标记颜色分类

代码语言:javascript
复制
[root@cent6 ~]# ls --color=auto
 anaconda-ks.cfg  directory  install.log.syslog

22.在ls中列出文件的绝对路径

代码语言:javascript
复制
 [root@zabbix zabbix]# ls | sed “s:^:pwd/:”
 /etc/zabbix/alertscripts
 /etc/zabbix/web
 /etc/zabbix/zabbix_agentd.conf
 /etc/zabbix/zabbix_agentd.d
 /etc/zabbix/zabbix_java_gateway.conf
 /etc/zabbix/zabbix_java_gateway_logback.xml
 /etc/zabbix/zabbix_server.conf
 /etc/zabbix/zabbix_server.conf_bak
 /etc/zabbix/zabbix_server.conf.rpmnew_bak

23. ls命令和它的别名

我们给ls命令设置如下别名之后,当我们执行ls命令的时候它会默认执行-l选项并且像上文提到的那样显示长列表。

代码语言:javascript
复制
alias ls=“ls -l --color”
 unalias ls
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-05-12 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档