如何在 Linux 命令行中按大小对文件进行排序

6408885719a8fc71dc6e42014d43f324.gif

作者 | 刘光录

来源 | TIAP

ls 命令用于显示目录的内容。使用 -l 选项,可以列出文件和目录及其属性。

今天我们来分享一下如何根据文件大小对列表进行排序。

ls -l 命令可以显示文件大小,但也仅仅是能让我们看到文件的大小,它默认是按照字母顺序显示的,不能按照文件大小进行排序。

如果我们想要查找当前目录下最大的文件,或者最小的文件,那就需要对文件大小进行排序了。

那如何按文件大小进行排序呢?ls 命令的 -S 选项可以做到这一点(注意 S 是大写的)。然后将其与 -h 和 -l 选项一起使用,会让输出看起来更舒服:

ls -lhS

为什么这么说呢,下面我们通过例子来看一下。

根据大小对文件进行排序

Linux 中有一个 sort 命令,但是它是对文件中的内容进行排序,并不是针对文件本身。

为了对比,我们按默认的排序,列出当前目录下的文件:

[gliu@fedora ~]$ ls -ltotal 404-rw-rw-r-- 1 gliu gliu  41145 May 27 15:24 ads.txt-rw-rw-r-- 1 gliu gliu  45443 May 24 09:03 apt-get.pdf-rw-rw-r-- 1 gliu gliu  29983 May 27 16:07 bash.pdf-rw-rw-r-- 1 gliu gliu 249773 May 26 14:56 cronjob-cheatsheet.png-rw-rw-r-- 1 gliu gliu   4943 Jun  2 20:09 gnome-console-voiceoverdrwxrwxr-x 4 gliu gliu   4096 Jun  2 22:09 letters-rw-rw-r-- 1 gliu gliu  12721 May 29 12:29 members.2022-05-29.csv-rw-rw-r-- 1 gliu gliu    143 May 30 12:06 routes.yamldrwxrwxr-x 2 gliu gliu   4096 Jun  2 22:09 words

然后使用 -S 选项来将文件按大小进行排序(注意 S 是大写):

[gliu@fedora ~]$ ls -lStotal 404-rw-rw-r-- 1 gliu gliu 249773 May 26 14:56 cronjob-cheatsheet.png-rw-rw-r-- 1 gliu gliu  45443 May 24 09:03 apt-get.pdf-rw-rw-r-- 1 gliu gliu  41145 May 27 15:24 ads.txt-rw-rw-r-- 1 gliu gliu  29983 May 27 16:07 bash.pdf-rw-rw-r-- 1 gliu gliu  12721 May 29 12:29 members.2022-05-29.csv-rw-rw-r-- 1 gliu gliu   4943 Jun  2 20:09 gnome-console-voiceoverdrwxrwxr-x 4 gliu gliu   4096 Jun  2 22:09 lettersdrwxrwxr-x 2 gliu gliu   4096 Jun  2 22:09 words-rw-rw-r-- 1 gliu gliu    143 May 30 12:06 routes.yaml

这样,文件就是按照大小进行的排序。但是大家可以看到,列表中输出的文件大小,单位是B,所以我们还可以使用 -h 选项,让文件大小以 KB, Mb, 或者 GB 为单位,这样更易读:

[gliu@fedora ~]$ ls -lhStotal 404K-rw-rw-r-- 1 gliu gliu 244K May 26 14:56 cronjob-cheatsheet.png-rw-rw-r-- 1 gliu gliu  45K May 24 09:03 apt-get.pdf-rw-rw-r-- 1 gliu gliu  41K May 27 15:24 ads.txt-rw-rw-r-- 1 gliu gliu  30K May 27 16:07 bash.pdf-rw-rw-r-- 1 gliu gliu  13K May 29 12:29 members.2022-05-29.csv-rw-rw-r-- 1 gliu gliu 4.9K Jun  2 20:09 gnome-console-voiceoverdrwxrwxr-x 4 gliu gliu 4.0K Jun  2 22:09 lettersdrwxrwxr-x 2 gliu gliu 4.0K Jun  2 22:09 words-rw-rw-r-- 1 gliu gliu  143 May 30 12:06 routes.yaml

注:如果两个文件大小相同,那么它们就会按照字母顺序排序。

按文件大小倒叙排序

默认情况下,按文件大小排序是正向排序,也就是文件越大的会排列在顶部。我们可以选择倒序排列,结合使用 -r 选项:

ls -lhSr

当目录中的文件数量比较多的时候(比如日志文件,可能有数十甚至上百个),倒序排列会很有用,这样你就可以在当前屏幕中看到最大的文件,而不需要向前滚动:

[gliu@itsfoss:~/toto$ ls -lhSrtotal 404K-rw-rw-r-- 1 gliu gliu  143 May 30 12:06 routes.yamldrwxrwxr-x 2 gliu gliu 4.0K Jun  2 22:09 wordsdrwxrwxr-x 4 gliu gliu 4.0K Jun  2 22:09 letters-rw-rw-r-- 1 gliu gliu 4.9K Jun  2 20:09 gnome-console-voiceover-rw-rw-r-- 1 gliu gliu  13K May 29 12:29 members.2022-05-29.csv-rw-rw-r-- 1 gliu gliu  30K May 27 16:07 bash.pdf-rw-rw-r-- 1 gliu gliu  41K May 27 15:24 ads.txt-rw-rw-r-- 1 gliu gliu  45K May 24 09:03 apt-get.pdf-rw-rw-r-- 1 gliu gliu 244K May 26 14:56 cronjob-cheatsheet.png

注:上述命令仅适用于文件,而不适用于目录。因为使用 ls 命令,目录的大小始终为 4kb(块大小)。目录的实际大小是通过 du (disk usage)  命令来查询的。

获取目录中最大的前10个文件

Linux 命令行最棒的地方在于,你可以组合多个命令从而获得不同的结果。

比如我们要查询当前目录中一些最大的文件。那么可以按大小对文件进行排序,然后在利用管道(|)结合使用 head 命令:

ls -lhS | head -11

在这个例子中,我在head 后使用的参数是 11, 因为第一行显示的是一个总数:

[gliu@itsfoss:~/tutu$ ls -lhS | head -11total 216K-rwxr-xr-x 1 gliu gliu  74K Jun  2 22:09 cpufetch-rw-rw-r-- 1 gliu gliu  45K Jun  2 22:38 apt-get.pdf-rw-rw-r-- 1 gliu gliu  41K Jun  2 22:38 ads.txt-rwxr-xr-x 1 gliu gliu 4.9K Jun  2 22:09 README.md-rw-rw-r-- 1 gliu gliu 4.9K Jun  2 22:38 gnome-console-voiceoverdrwxr-xr-x 2 gliu gliu 4.0K Jun  2 22:09 docdrwxr-xr-x 2 gliu gliu 4.0K Jun  2 22:09 picturesdrwxr-xr-x 5 gliu gliu 4.0K Jun  2 22:09 src-rwxr-xr-x 1 gliu gliu 2.8K Jun  2 22:09 CONTRIBUTING.md-rwxr-xr-x 1 gliu gliu 2.4K Jun  2 22:09 cpufetch.1

此外,你可以使用 tail 命令用于反向排序,但我觉着没必要。

以上命令是展示的当前目录中的文件列表。如果要在整个计算机中查询,那么可以加上根路径 /,不过这需要root权限。但是 ls 命令不适用于此类情况,如果要查询整个计算机中的文件,可以使用 find 命令查找大于指定大小的文件。

连同隐藏文件一起查询排序

如果你在文件或目录前面加一个点 . ,那么这个文件就变成了隐藏文件,使用 ls 命令(不带任何参数)是查看不到这些隐藏文件的。

许多配置文件一般是隐藏的,所以在按大小排序文件时,还应考虑这些隐藏文件。

选项 -a 可以显示隐藏文件,包括 . 和 .. 目录:

[gliu@fedora ~]$ ls -lahStotal 428K-rw-rw-r--  1 gliu gliu 244K May 26 14:56 cronjob-cheatsheet.png-rw-rw-r--  1 gliu gliu  45K May 24 09:03 apt-get.pdf-rw-rw-r--  1 gliu gliu  41K May 27 15:24 ads.txt-rw-rw-r--  1 gliu gliu  30K May 27 16:07 bash.pdf-rw-rw-r--  1 gliu gliu  13K Jun  3 09:41 .member.csv-rw-rw-r--  1 gliu gliu  13K May 29 12:29 members.2022-05-29.csv-rw-rw-r--  1 gliu gliu 4.9K Jun  2 20:09 gnome-console-voiceoverdrwxrwxr-x  4 gliu gliu 4.0K Jun  3 09:41 .drwxr-x--- 26 gliu gliu 4.0K Jun  3 10:19 ..drwxrwxr-x  3 gliu gliu 4.0K Jun  3 10:10 lettersdrwxrwxr-x  2 gliu gliu 4.0K Jun  2 22:09 words-rw-rw-r--  1 gliu gliu  143 May 30 12:06 routes.yaml

可以看到隐藏文件 .member.csv 也被输出在了列表中。

按大小递归排序文件

上述例子只是处理的当前目录中的文件。那么怎样才能包括子目录中的文件呢?如果我们要查找当前路径下最大的文件,还需要将子目录中的文件一块查找。

可以使用 -R 选项列出子目录中的文件。

ls -lRS

然而,这不是正确的方法,因为它不会将所有文件排序在一起,而是将它们排序在各自的目录中。

有一种方法,是可以使用du命令并将其组合起来,根据文件大小递归排序:

du -ah | sort -hr

许多Linux用户错误地使用-s(小写s)选项按大小排序文件,这是错误的。小写 s 显示每个条目的块大小。要排序,请使用-S(大写S)。

以上就是本次分享全部内容,欢迎讨论。

42ecbf18f71e12fc5a43e54d17b5b3ed.gif

往期推荐

Docker 那些事儿:如何安全地停止、删除容器?

掌握 Dowanward API 的妙用,轻松拿捏 kubernetes 环境变量

云原生时代,开发者应具备这5大能力

实战 Kubectl 创建 Deployment 部署应用

1acb32b3f347a3a6ead7ee5c6d46b65e.gif

点分享

b99ea39ab4f131056feda6ccb48082cf.gif

点收藏

e73db88a791d2b23c5fa27c7ee50e1e7.gif

点点赞

d1c36f2f92c5aa168b87f46d36e85f7c.gif

点在看

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/511292.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

福建品品香茶业有限公司业务迁移上云

福建品品香茶业有限公司数据量较大,进行业务迁移上云时阿里云根据其公司需求综合考虑,推荐将原有IOE架构改为分布式架构,使用ECSRDS承载业务,为客户带来极大价值。 企业介绍 福建品品香茶业有限公司是一家集茶叶种植、加工、销售…

璀璨智行:V2X车路协同智慧交通

V2X车用无线通信技术是指车对外界的信息交换,作为未来智能交通运输系统的关键技术,璀璨智行潜心研究V2X技术,致力于V2X车路协同的落地,在智慧交通领域做出了卓越的贡献。 创业机会点 魏军博表示:“面对交通系统效率低…

Databricks 企业版 SparkDelta Lake 引擎助力 Lakehouse 高效访问

简介:本文介绍了Databricks企业版Delta Lake的性能优势,借助这些特性能够大幅提升Spark SQL的查询性能,加快Delta表的查询速度。 作者: 李锦桂(锦犀) 阿里云开源大数据平台开发工程师 王晓龙&#xff08…

深度解析数据湖存储方案Lakehouse架构

简介:从数据仓库、数据湖的优劣势,湖仓一体架构的应用和优势等多方面深度解析Lakehouse架构。 作者:张泊 Databricks 软件工程师 Lakehouse由lake和house两个词组合而成,其中lake代表Delta Lake(数据湖)&…

1688 复杂业务场景下的 Serverless 提效实践

简介:我们主要负责 PC 端 1688.com 以及手机端阿里巴巴 APP,是目前国内最大的 B 类电商交易平台,主要面向 B2B 电商业务的场景,为中小企业提供零售、批发、分销以及加工定制等电商交易渠道。 前言 首先为大家简单介绍一下我们的…

阿里 蚂蚁自研 IDE 研发框架 OpenSumi 正式开源

简介:经历近 3 年时间,在阿里集团及蚂蚁集团共建小组的努力下,OpenSumi 作为国内首个强定制性、高性能,兼容 VS Code 插件体系的 IDE 研发框架,今天正式对外开源。 作者 | OpenSumi 来源 | 阿里技术公众号 经历近 3 …

剖析 kubernetes 集群内部 DNS 解析原理

作者 | 江小南来源 | 江小南和他的小伙伴们引言说到DNS域名解析,大家想到最多的可能就是/etc/hosts文件,并没有什么错,但是/etc/hosts只能做到本机域名解析,如果跨机器的解析就有点捉襟见肘了。在服务器中还有一个配置值得大家注意…

首次公开,阿里云开源PolarDB总体架构和企业级特性

简介:在3月2日的阿里云开源 PolarDB 企业级架构发布会上,阿里云 PolarDB 内核技术专家北侠带来了主题为《PolarDB 总体架构设计和企业级特性》的精彩演讲。 在3月2日的阿里云开源 PolarDB 企业级架构发布会上,阿里云 PolarDB 内核技术专家 北…

阿里云数据库开源发布:PolarDB HTAP的功能特性和关键技术

简介:在3月2日的阿里云开源 PolarDB 企业级架构发布会上,阿里云 PolarDB 内核技术专家严华带来了主题为《PolarDB HTAP详解》的精彩演讲。在PolarDB存储计算分离架构的基础上,我们研发了基于共享存储的MPP分布式执行引擎,解决了单…

倒计时 2 天!2022 中国算力大会:移动云邀您共见算力网络,创新发展

7 月 29 日 - 31 日由工业和信息化部、山东省人民政府主办的首届中国算力大会将在泉城济南盛大举行!中国移动受邀承办“算力网络,创新发展” 论坛并设立展区分享行业前瞻洞察,构建开放共赢生态7 月 29 日下午,邀您共话算力精彩&am…

什么是好的错误消息? 讨论一下Java系统中的错误码设计

简介:一个好的Error Message主要包含三个部分:Context: 什么导致了错误?发生错误的时候代码想做什么?The error itself: 到底是什么导致了失败?具体的原因和当时的数据是什么?Mitigation: 有什么解决方案来…

阿里巴巴在开源压测工具 JMeter 上的实践和优化

简介:Apache JMeter 是 Apach 旗下的开源压测工具,创建于 1999 年初,迄今已有超过 20 年历史。JMeter 功能丰富,社区(用户群体)庞大,是主流开源压测工具之一。 作者:灵苒、涧泉 Ap…

普洛斯荣获两项“数据中心绿色等级评估”5A级认证

7月29日,由工业和信息化部及山东省人民政府主办的首届中国算力大会在济南成功举办,会上同时公布了本年度“数据中心绿色等级评估”评审结果。普洛斯常熟东南数据中心B栋及普洛斯怀来数据中心3号楼均荣获“数据中心绿色等级评估”(规划类/基础…

深度解读企业云上办公利器「无影云电脑」

简介:信息化进程高速发展的今天,用户桌面办公的需求正不断发生变化:远程办公,BYOD的需求不断增长;快速交付,高效运维的需求接连上升;数据及网络安全的关注度持续提高;整体办公成本在…

云风:不加班、不炫技,把复杂的问题简单化

小学时跟随母亲去成人大学学习编程,初中开始参加信息学奥赛,高中写出人生中第一个成熟软件——Cview,大学发布开源软件风魂系列,后用于网易开发的《大话西游》《梦幻西游》等热门游戏,离开网易创立简悦科技……随着云风…

Timing:在线自习室快速搭建

通过超低延迟的音视频通信技术、视频连麦、弱网传输算法,快速搭建自习场景,提升自习效率。 客户简介 氪细胞主打产品Timing,是国内最早推出,也是规模最大的在线自习室,是新一代的教育与社交融合平台,主打高…

Nacos2.0的K8s服务发现生态应用及规划

简介:Nacos 是阿里巴巴于 2018 年开源的注册中心及配置中心产品,帮助用户的分布式微服务应用进行服务发现和配置管理功能。随着 Nacos2.0 版本的发布,在性能和扩展性上取得较大突破后,社区开始考虑如何提供更加云原生方向的功能和…

webview 和 React Native 中吸顶效果实现

作者 | 👽来源 | Sharing一、前言 在跨端开发中,离不开一些吸顶的交互场景,可以参考淘宝或是京东类电商 app 中一些 tab ,在整个容器滑动的过程中,吸顶效果非常的连贯和丝滑的,当然这些 tab 可能是用 nativ…

AHPA:开启 Kubernetes 弹性预测之门

简介:阿里巴巴云原生团队和阿里达摩院决策智能时序团队合作开发 AHPA 弹性预测产品,该产品主要出发点是基于检测到的周期做“定时规划”,通过规划实现提前扩容的目的,在保证业务稳定的情况下,让你真正实现按需使用。 …

Kubernetes 在科技革命中的演变

作者 | Anthony Spiteri仅在一两年前,对于那些希望通过向现代数据平台转型走在前沿的企业来讲,容器化可是热门词汇。Kubernetes,也被称为 K8s,当时还不成熟,仅处于起步阶段,对更广泛的IT界来说仍然有些陌生…