8个Linux下ls命令的用法

在Linux下,ls这个命令大家肯定太熟悉了,笔者相信只要是Linux工程师,每天都会离不开这个命令,而且一天会使用个几百次。

但是,除了ls -l以外,你还知ls的哪些高级用法呢?笔者今天为大家介绍ls命令的8种高级用法。

假如我们有这样的一个文件夹,我们用tree命令查看它的目录结构:
在这里插入图片描述

用法1:列出/home/alvin/test_dir目录下所有文件及目录的详细资料

命令:

ls-lR/home/alvin/test_dir/

结果:

[alvin@VM_0_16_centostest_dir]$ls-lR/home/alvin/test_dir/
/home/alvin/test_dir/:
total28
-rw-rw-r–1alvinalvin37Nov1809:12atb_aux.c
-rw-rw-r–1alvinalvin8Nov1809:12atb_can.c
-rw-rw-r–1alvinalvin24Nov1809:12atb_orch.c
-rw-rw-r–1alvinalvin5Nov1809:12atb_ota.c
drwxrwxr-x2alvinalvin4096Nov1809:12include
-rw-rw-r–1alvinalvin0Nov1809:12Makefile
drwxrwxr-x2alvinalvin4096Nov1809:12output
drwxrwxr-x2alvinalvin4096Nov1809:12src
/home/alvin/test_dir/include:
total0
-rw-rw-r–1alvinalvin0Nov1809:12a.h

/home/alvin/test_dir/output:
-rwxrwxr-x1alvinalvin0Nov1809:12app
/home/alvin/test_dir/src:

-rw-rw-r–1alvinalvin0Nov1809:12b.c

在这里,-l选项大家应该比较熟悉,是以列表的形式显示结果的意思。而对于 -R选项,意思是递归处理,将指定目录下的所有文件及子目录一并处理。

用法2:列出/home/alvin/test_dir目录下以atb开头的所有文件的详细内容

命令:

ls-latb*

结果:

[alvin@VM_0_16_centostest_dir]$ls-latb*
-rw-rw-r–1alvinalvin37Nov1809:12atb_aux.c
-rw-rw-r–1alvinalvin8Nov1809:12atb_can.c
-rw-rw-r–1alvinalvin24Nov1809:12atb_orch.c
-rw-rw-r–1alvinalvin5Nov1809:12atb_ota.c

用法3:只列出目录下的子目录

方法1:

命令:

ls-F/home/alvin/test_dir|grep/$

结果:

[alvin@VM_0_16_centostest_dir] l s − F / h o m e / a l v i n / t e s t d i r ∣ g r e p / ls-F/home/alvin/test_dir|grep/ lsF/home/alvin/testdirgrep/
include/
output/
src/

其中:-F选项表示在每个文件名后附上一个字符以说明改文件的类型。

“*”:表示可执行的普通文件;“/”:表示目录;“@”:表示符号链接;“|”:表示FIFOs;“=”:表示套接字。

/ 其 实 是 一 个 正 则 表 达 式 , 表 示 以 / 结 尾 。 g r e p / 其实是一个正则表达式,表示以/结尾。grep/ /grep/表示过滤出以/结尾的结果,也就是子目录。

方法2:

命令:

结果:

[alvin@VM_0_16_centostest_dir] l s − p ∣ g r e p / ls-p|grep/ lspgrep/
include/
output/
src/

其中:-p选项与-F选项类似,也是在每个文件名后附上一个字符以说明改文件的类型。

方法3:

命令:

ls-l/home/alvin/test_dir|grep"^d"

结果:

[alvin@VM_0_16_centostest_dir]$ls-l/home/alvin/test_dir|grep"^d"

其中:^d也是一个正则表达式,表示以d开头。grep "^d"表示过滤出以d开头的结果,而ls -l所列出来的结果,首位如果是d的话,表示这个文件是个目录,这样就可以过滤出子目录了。

方法4:

命令:

ls-d*/

结果:

[alvin@VM_0_16_centostest_dir]$ls-d*/
include/output/src/

其中:-d选项表示将目录象文件一样显示,而不显示其下的文件。

用法4:按时间顺序列出目录下的文件,越新越排后面。

命令:

ls-ltr

结果:

[alvin@VM_0_16_centostest_dir]$ls-lrt
total28

其中:-t选项表示以文件修改时间排序,越新的越靠前。-r选项表示对结果进行反向排序,二者结合的话表示以修改时间排序,越新的越靠后。

用法5:以文件大小进行排序

命令:

ls-lhS

结果:

[alvin@VM_0_16_centostest_dir]$ls-lhS
K
drwxrwxr-x2alvinalvin4.0KNov1809:12include
drwxrwxr-x2alvinalvin4.0KNov1809:12output
drwxrwxr-x2alvinalvin4.0KNov1809:12src

其中:-h选项表示以可读选项显示,否则文件大小是默认以字节数显示,比如:4873字节,你知道是多少吗?加了-h选项系统就帮你换算成以k或者其它单位的结果。

-S选项表示以文件大小进行排序,文件越大越靠前。想要文件小者靠前的话,加个-r选项就行。

用法6:统计当前目录下的文件数和目录数

统计文件数:

命令:

ls-l|grep"^-"|wc-l

结果:

[alvin@VM_0_16_centostest_dir]$ls-l|grep"^-"|wc-l
5

其中:^-表示以-开头,即普通文件,ls -l | grep “^-” 过滤出普通文件,再用 wc -l统计过滤出的普通文件的个数。

统计目录数:

命令:

结果:

3

其中:^d表示以d开头,即目录,ls -l | grep "^d"过滤出目录,再用wc -l统计过滤出的目录的个数。

用法7:列出所有文件的绝对路径

命令:

ls|sed"s:^:pwd/:"

结果:

[alvin@VM_0_16_centostest_dir]$ls|sed"s:^:pwd/:"
/home/alvin/test_dir/atb_aux.c
/home/alvin/test_dir/atb_can.c
/home/alvin/test_dir/atb_orch.c
/home/alvin/test_dir/atb_ota.c
/home/alvin/test_dir/include
/home/alvin/test_dir/Makefile
/home/alvin/test_dir/output
/home/alvin/test_dir/src

其中:sed "s:^:pwd/:"表示在行首增加pwd(即文件所在路径),与文件名组合成绝对路径。

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

在上一个用法里,对于隐藏文件(即以 . 开头的文件)是不作处理的,如果我们需要对隐藏文件也作处理的话,就需要使用下面这个命令:

find$PWD-maxdepth1|xargsls-ld

结果:

[alvin@VM_0_16_centostest_dir] f i n d find findPWD-maxdepth1|xargsls-ld
drwxrwxr-x5alvinalvin4096Nov1817:30/home/alvin/test_dir
-rw-rw-r–1alvinalvin37Nov1809:12/home/alvin/test_dir/atb_aux.c
-rw-rw-r–1alvinalvin8Nov1809:12/home/alvin/test_dir/atb_can.c
-rw-rw-r–1alvinalvin24Nov1809:12/home/alvin/test_dir/atb_orch.c
-rw-rw-r–1alvinalvin5Nov1809:12/home/alvin/test_dir/atb_ota.c
drwxrwxr-x2alvinalvin4096Nov1809:12/home/alvin/test_dir/include
-rw-rw-r–1alvinalvin0Nov1809:12/home/alvin/test_dir/Makefile
drwxrwxr-x2alvinalvin4096Nov1809:12/home/alvin/test_dir/output
drwxrwxr-x2alvinalvin4096Nov1809:12/home/alvin/test_dir/src

其中:find $PWD -maxdepth 1限定了在当前层级(即不递归),再对find结果传递给ls -ld作参数,这样就将当前目录下的所有文件补齐了所在路径。

声明:本文为转发良许的作品,如有侵权请联络删除。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值