这是一个很有趣的问题,因为作为一个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查找某目录下的最大文件的更多相关文章

  1. 用shell查找某目录下的最大文件(转)

    这是一个很有趣的问题,因为作为一个shell菜鸟,我第一时间是没有任何想法的.心里纳闷为什么这样的操作Linux居然没有直接的命令实现这样的查询. 很自然地,第一感觉就是用awk去实现,因为菜鸟我看a ...

  2. 用shell查找某个目录下最大文件

    网上资料学习: 1.查找当前目录下最大文件(包括子目录里文件): find . -type f -exec stat -c "%s %n" {} \; | sort -nr | h ...

  3. shell 删除某个目录下的重复文件

    #!/bin/bash ls -lS | awk 'BEGIN{ getline; getline; name1=$;size=$; } { name2=$; sizeTmp=$; ){ ; ; if ...

  4. shell 搜索指定目录下所有 jar 文件生成csv文件

    虽说比较简单,但希望分享给大家.按需求改成想找的:例如txt,xls 等. 脚本名 扫描的路径 文件名 testFind.sh /  testFind.txt (如果未配置环境变量  ./testFi ...

  5. shell 读取某个目录下的所有文件

    #!/bin/shFILE_PATH="xxx" xxx:路径cd $FILE_PATHfor FILE in `ls` do echo $FILE done

  6. [转载] linux查找目录下的所有文件中是否含有某个字符串

    链接自 http://blog.sina.com.cn/s/blog_691a84f301015khx.html,并略加修订. 查找目录下的所有文件中是否含有某个字符串 find .|xargs gr ...

  7. linux查找目录下的所有文件中是否含有某个字符串

    查找目录下的所有文件中是否含有某个字符串 find .|xargs grep -ri "IBM" find .|xargs grep -ri "IBM" -l ...

  8. 查找目录下的所有文件中是否含有某个字符串 linux

    查找目录下的所有文件中是否含有某个字符串 find .|xargs grep -ri "IBM" 查找目录下的所有文件中是否含有某个字符串,并且只打印出文件名 find .|xar ...

  9. linux查找目录下的所有文件中是否含有某个字符串 (转)

    查找目录下的所有文件中是否含有某个字符串 find .|xargs grep -ri "IBM" 查找目录下的所有文件中是否含有某个字符串,并且只打印出文件名 find .|xar ...

随机推荐

  1. 【转】android中的数据存取-方式一:preference(配置)

    这种方式应该是用起来最简单的Android读写外部数据的方法了.他的用法基本上和J2SE(java.util.prefs.Preferences)中的用法一样,以一种简单. 透明的方式来保存一些用户个 ...

  2. MongoDB mongod.exe或mongo.exe双击一闪就关闭

    场景: 在 D:\data\ 创建 db目录之后,运行 mongod -repair 原因: 磁盘满了,没有空间了. 解决方法: 把 MongoDB\data 下的 lock 文件删掉,清理下磁盘空间 ...

  3. JDBC Like子句实例

    在本教程将演示如何在JDBC应用程序中,从数据库表中查询数据记录, 在查询选择记录时使用Like子句添加其他条件. 在执行以下示例之前,请确保您已经准备好以下操作: 具有数据库管理员权限,以在给定模式 ...

  4. e797. 显示JSlider的标记

    The slider supports two levels of tick marks, major and minor. Typically, the minor tick-mark spacin ...

  5. php -- php模拟浏览器访问网址

    目前我所了解到的在php后台中,用php模拟浏览器访问网址的方法有两种: 第一种:模拟GET请求:file_get_contents($url) 通过php内置的 file_get_contents ...

  6. Cisco配置VLAN+DHCP中继代理+NAT转发上网

    实验环境: 路由器 使得TP-link 设置NAT转发使用,tp-link路由器网关设置成 192.168.30.254 (核心层)Cisco 3550三层交换机(型号C3550-I5Q3L2-M)配 ...

  7. 通过 Service 访问 Pod

    我们不应该期望 Kubernetes Pod 是健壮的,而是要假设 Pod 中的容器很可能因为各种原因发生故障而死掉.Deployment 等 controller 会通过动态创建和销毁 Pod 来保 ...

  8. tablediff工具实用

    1. tablediff 是什么? tablediff 实用工具用于比较两个非收敛的表中的数据,它对于排除复制拓扑中的非收敛故障非常有用. 2. tablediff 用哪些用法? 1) . 在充当复制 ...

  9. [mobile angular ui]MAUI中的font awesome图标

    MAUI中用font awesome替换了glyphicon,但是FA中都有哪些可用的图标呢,在网上搜了一张font awesome的对照表,使用时记着把其中的icon-xxx替换为fa-xxx就可以 ...

  10. Oracle高级查询之CONNECT BY

    为了方便大家学习和测试,所有的例子都是在Oracle自带用户Scott下建立的. Oracle中的select语句可以用start with ... connect by prior ...子句实现递 ...