用shell查找某目录下的最大文件
这是一个很有趣的问题,因为作为一个shell菜鸟,我第一时间是没有任何想法的。心里纳闷为什么这样的操作Linux居然没有直接的命令实现这样的查询。
很自然地,第一感觉就是用awk去实现,因为菜鸟我看awk看得傻了:
ls -l | awk '/^[^d]/ {print $5,$9}' | sort -nr | head -1
明显ls查看完整的文件信息,过滤掉d开头的东东(目录),取出文件大小$5和名字$9两项,排序,取第一个
很自然问题就变的清晰,值得讨论的是怎么实现前面过滤出文件大小和名字这一个过程。后面的sort和head不管用什么方法都一样的。
baidu这个问题,发现某论坛里有大神的回答。主要是针对连子目录都能查询的。因为大神用了find命令:
find -type f -exec stat -c "%s %n" {} \; | sort -nr | head -1
缺省路径是当前目录里,执行命令stat,同样是返回大小(以byte为单位的)和名字,blah blah。注意stat不是state就是了,某菜鸟表示每次都敲错。
后来在某本基础教材看到另外一个途径,用了du命令,异常膜拜:
du -s * | sort -nr | head -1
比前面awk简单很多。-s参数会返回当前目录里的文件的大小,*会drill down出每个文件的大小,不包括目录的总大小。
不过呢,后面还是仔细学习了一下,发现这个方法是把子目录作为一个文件来看待的。所以最大文件可能是某个子目录,而不是某个文件。好处是,du的可以设置size显示的单位,比较傻瓜的是直接用-h参数,所谓的human-readable的形式。
所以综上所述,还是前面两个命令好了,第一个是只查询根目录最大文件,第二个是递归到每个子目录里找出最大文件。至于du往往会涉及到子目录的总和,所以第三个命令的功能是:查询当前目录下,最大的文件或者目录。
转载于:https://www.cnblogs.com/lixiuran/p/6586675.html
用shell查找某目录下的最大文件相关推荐
- linux sed 目录递归,shell递归遍历目录下的所有文件并统一改名的方法-文件更名...
对Linux开发技术感兴趣或者是从事Linux开发技术的小伙伴是否知道如何把某个目录下的每个文件统一在名字前加上"abc",用shell实现呢?下面就随Linux培训小编来了解一下 ...
- Linux拓展之查找指定目录下的最大文件
概述 有时候我们需要查找指定目录下的最大文件,通常说的指定目录包括该目录下的所有文件和子目录下的所有文件.如下是几种能查找最大文件的方法. 方法一 查找指定目录下的最大文件,但不包括所有子目录,只包括 ...
- VBA实战技巧精粹012:查找指定目录下的指定文件及Dir函数用法
问题:有处理学生评语,限于网络条件,往往学生提交的都是单个文件,这就需要将其一一提取出来,然后进行判断.导出等操作,但首先要解决的就是查找所有文件如何操作,这里需要用到Dir函数,当然创建一个文件搜索 ...
- 如何查找特定目录下最大的文件及文件夹
如何查看特定目录下大小在前10位的文件 find 目录 -ls |sort -nrk7 |head 参数说明如下: -ls True; list current file in ls ...
- shell 拷贝 一个目录下的所有文件 到 另个目录下_几例实用的Shell脚本
日常工作中,经常编写一些shell命令或脚本以完成重复性操作,本文分享了最近用到的几例shell实用脚本. 1 特殊文件名的远程拷贝 服务器之间拷贝文件经常使用scp命令,其命令格式: (1)scp ...
- shell脚本遍历目录下的所有文件并进行操作
#!/bin/bashfunction read_dir(){ for file in `ls $1` #注意此处这是两个反引号,表示运行系统命令doif [ -d $1"/"$f ...
- linux循环目录下目录,Shell循环列出目录下所有文件或查找目录下包含指定字符串的文件...
一.循环列出目录下所有文件 #!/bin/bash function frfile() { local basefolder=$1 echo $basefolder #local filename f ...
- shell访问php文件夹,Shell获取某目录下所有文件夹的名称
Shell获取某目录下所有文件夹的名称以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Shell获取某目录下所有文件夹的 ...
- linux 批量替换文件内容及查找某目录下所有包含某字符串的文件(批量修改文件内容)
转自 http://blog.csdn.net/werm520/article/details/49334513 grep -rl '10.100.137.5' | xargs sed -i '10. ...
- linux 批量替换文件内容及查找某目录下所有包含某字符串的文件(批量修改文件内容)...
1. sed grep -rl matchstring somedir/ | xargs sed -i 's/string1/string2/g' 例如: 对象:文件夹 grep -rl 'windo ...
最新文章
- java B2B2C源码电子商务平台 -commonservice-config配置服务搭建
- 既往出现中性粒细胞减少的患者可以重新应用依那西普
- 人工不智能,AI产品经理要帮助用户认清这一现实
- HDU2016 数据的交换输出
- POS DES MAC 算法
- Python中单线程、多线程与多进程的效率对比实验
- windows11图文安装流程
- Css 选择器 算法 规则
- 一篇教你xftp连接阿里云轻量级应用服务器。超级详细,避免踩坑
- 深度系统安装移动硬盘启动_深度系统如何安装_电脑知识
- 第二天linux,yum源配置和ftp部分设置
- [ASP.NET 设计模式] 用Visual Studio2010搭建一个简单的分层结构示例Step by Step —— 06 用户界面层...
- 【RabbitMQ】SpringBoot的RabbitMQTemplate实战
- datawhale 学习笔记——建模调参入门
- 如何干掉腾讯网迷你版
- java libmp3lame_利用libmp3lame实现在Android上录音MP3文件示例
- C. Dima and Salad
- 开源正在吞噬软件,开源RPA厚积薄发
- nexus5 博通芯片WIFI详解 (2)
- Linux 7通过防火墙安全策略修补安全漏洞