用shell查找某目录下的最大文件
这是一个很有趣的问题,因为作为一个shell菜鸟,我第一时间是没有任何想法的。心里纳闷为什么这样的操作Linux居然没有直接的命令实现这样的查询。
很自然地,第一感觉就是用awk去实现,因为菜鸟我看awk看得傻了:
ls -l | awk '/^[^d]/ {print $5,$9}' | sort -nr | head -
明显ls查看完整的文件信息,过滤掉d开头的东东(目录),取出文件大小$5和名字$9两项,排序,取第一个
很自然问题就变的清晰,值得讨论的是怎么实现前面过滤出文件大小和名字这一个过程。后面的sort和head不管用什么方法都一样的。
baidu这个问题,发现某论坛里有大神的回答。主要是针对连子目录都能查询的。因为大神用了find命令:
find -type f -exec stat -c "%s %n" {} \; | sort -nr | head -
缺省路径是当前目录里,执行命令stat,同样是返回大小(以byte为单位的)和名字,blah blah。注意stat不是state就是了,某菜鸟表示每次都敲错。
后来在某本基础教材看到另外一个途径,用了du命令,异常膜拜:
du -s * | sort -nr | head -
比前面awk简单很多。-s参数会返回当前目录里的文件的大小,*会drill down出每个文件的大小,不包括目录的总大小。
不过呢,后面还是仔细学习了一下,发现这个方法是把子目录作为一个文件来看待的。所以最大文件可能是某个子目录,而不是某个文件。好处是,du的可以设置size显示的单位,比较傻瓜的是直接用-h参数,所谓的human-readable的形式。
所以综上所述,还是前面两个命令好了,第一个是只查询根目录最大文件,第二个是递归到每个子目录里找出最大文件。至于du往往会涉及到子目录的总和,所以第三个命令的功能是:查询当前目录下,最大的文件或者目录。
用shell查找某目录下的最大文件的更多相关文章
- 用shell查找某目录下的最大文件(转)
这是一个很有趣的问题,因为作为一个shell菜鸟,我第一时间是没有任何想法的.心里纳闷为什么这样的操作Linux居然没有直接的命令实现这样的查询. 很自然地,第一感觉就是用awk去实现,因为菜鸟我看a ...
- 用shell查找某个目录下最大文件
网上资料学习: 1.查找当前目录下最大文件(包括子目录里文件): find . -type f -exec stat -c "%s %n" {} \; | sort -nr | h ...
- shell 删除某个目录下的重复文件
#!/bin/bash ls -lS | awk 'BEGIN{ getline; getline; name1=$;size=$; } { name2=$; sizeTmp=$; ){ ; ; if ...
- shell 搜索指定目录下所有 jar 文件生成csv文件
虽说比较简单,但希望分享给大家.按需求改成想找的:例如txt,xls 等. 脚本名 扫描的路径 文件名 testFind.sh / testFind.txt (如果未配置环境变量 ./testFi ...
- shell 读取某个目录下的所有文件
#!/bin/shFILE_PATH="xxx" xxx:路径cd $FILE_PATHfor FILE in `ls` do echo $FILE done
- [转载] linux查找目录下的所有文件中是否含有某个字符串
链接自 http://blog.sina.com.cn/s/blog_691a84f301015khx.html,并略加修订. 查找目录下的所有文件中是否含有某个字符串 find .|xargs gr ...
- linux查找目录下的所有文件中是否含有某个字符串
查找目录下的所有文件中是否含有某个字符串 find .|xargs grep -ri "IBM" find .|xargs grep -ri "IBM" -l ...
- 查找目录下的所有文件中是否含有某个字符串 linux
查找目录下的所有文件中是否含有某个字符串 find .|xargs grep -ri "IBM" 查找目录下的所有文件中是否含有某个字符串,并且只打印出文件名 find .|xar ...
- linux查找目录下的所有文件中是否含有某个字符串 (转)
查找目录下的所有文件中是否含有某个字符串 find .|xargs grep -ri "IBM" 查找目录下的所有文件中是否含有某个字符串,并且只打印出文件名 find .|xar ...
随机推荐
- 摄像头驱动0V7725学习笔记连载(三):0V7725 SCCB时序的实现
上一篇博客主要是讲解了关于需要配置的重要寄存器,那么接下来就是要通过SCCB接口实现对OV7725的配置.参考<OmniVision Serial Camera Control Bus (SCC ...
- android 向服务器上传
采用数据流的格式向服务器上传. 代码如下: private void upload(String requestURL) { //参数requestU ...
- GDB调试——常用的命令
首先说明一点,如果我们要使用GDB来调试我们的C/C++程序时,在使用GCC编译程序时,应该带上 –g 参数, 它负责生成 与GDB相关的调试信息: 1.如何对一个文件启动GDB调试? 方法一: 命令 ...
- e789. 限制用JSpinner实现数字选择的值
// Create a number spinner that only handles values in the range [0,100] int min = 0; int max = 100; ...
- nodejs基础 -- 常用工具util
util是nodejs的核心模块,提供常用函数的集合,用户弥补核心javascript的功能过于精简的不足 util.inherits 是一个实现对象间原型继承的函数 javascript的面向对象特 ...
- (弃)解读Openstack Identity API v2.0
目前OpenStack社区提供了详尽的API文档,并配有丰富的说明和示例,关于Identity API v2查看这里, 关于Identity API v3请查看这里. 尽管现在官方已经不建议OpenS ...
- C# 在EF中直接运行SQL命令
相信不少使用EF的同志们已经知道如何在EF中运行SQL命令了.我在这里简单总结下,希望对大家学习EF有所帮助! 在 EF第一个版本(.NET 3.5 SP1)中,我们只能通过将ObjectContex ...
- 转载:手把手教你做iOS推送
手把手教你做iOS推送 http://www.cocoachina.com/industry/20130321/5862.html
- windows server 安装phpVirtualBox web服务
这是我在Windows server 2012 下的安装过程 (1) 安装virtualbox (2) 安装IIS和PHP, 参考: https://msdn.microsoft.com/zh-cn/ ...
- Windows下安装Oracle12C(一)
1,在官网上下载oracle的压缩文件,两个都要下载. 并两个同时选中解压在一个文件夹里面. 2,解压之后,如下图,点击setup.exe稍等一会儿 ,3,开始安装: 不选点击下一步,或者直接点击下一 ...