概述

有时候我们需要查找指定目录下的最大文件,通常说的指定目录包括该目录下的所有文件和子目录下的所有文件。如下是几种能查找最大文件的方法。

方法一

查找指定目录下的最大文件,但不包括所有子目录,只包括当前目录。命令格式如下:

# 语法
ls -lShr 指定目录 | tail -n 1
# 示例,查找 /root/ 目录下的最大文件
ls -lShr /root/ | tail -n 1

说明如下:

  • ls -lShr /root/:从小到大列出 /root/ 目录下的所有文件。

    • -l 选项:列出指定目录下的所有文件,以列表的形式。
    • -S 选项:对于列出的所有文件按照文件大小排序,默认降序。
    • -h 选项:以人类可读性的方式显示,即文件大小以 kM 的方式显示。
    • -r 选项:逆序排序。
  • tail -n 1:找到列出文件中的最后一个文件,即最大文件。
    • -n 选项:获取结果的最后一行。按照逆序排序后,最大文件则位于最后一行。

如图:

方法二

查找指定目录下的最大文件,包括当前目录和其下所有递归子目录。命令格式如下:

# 语法
find 指定目录 -type f -printf "%s\t%p\n" | sort -n | tail -n 1
# 示例,查找 /root/ 目录下的最大文件
find /root/ -type f -printf "%s\t%p\n" | sort -n | tail -n 1

说明如下:

  • find /root/ -type f -printf "%s\t%p\n":查看 /root/ 目录下的所有普通文件,只显示文件大小和文件路径。

    • -type f 选项:表示只查找普通文件。
    • -printf "%s\t%p\n" 选项:表示只打印显示文件大小和文件路径。 %s 符号表示文件大小以字节的方式;%p 符号表示文件名,即路径的方式。
  • sort -n:对列出的所有文件按数字进行排序。默认是从小到大,所以最大的文件在最后一行。
    • -n 选项:表示按照数字排序,默认是从小到大。
  • tail -n 1:获取排序后文件列表的最后一行,即最大文件。
    • -n 1 选项:表示获取最后一行。

如图:

方法三

查找指定目录下的最大文件,包括当前目录和其下所有递归子目录。命令格式如下:

# 语法
find 指定目录 -type f -print0 | xargs -0 du -h | sort -rh | head -n 1
# 示例,查找 /root/ 目录下的最大文件
find /root/ -type f -print0 | xargs -0 du -h | sort -rh | head -n 1

说明如下:

  • find /root/ -type f -print0:查找 /root/ 目录下的所有普通文件,并且输出完整的文件名,每个文件之前通过空字符 NUL'\0')分隔。

    • -type f:指定只查找普通文件。
    • -print0:输出显示完整的文件名,每个文件之间通过一个空字符 NUL'\0')分隔。

  • xargs -0 du -h:以可读的方式显示每个文件和它的大小。

    • xargs:该命令可以将标准输入转换成命令行参数。
    • -0:以空字符 NUL'\0')分隔文件列表。
    • du -h:以可读的方式计算显示文件在磁盘空间使用的情况。

  • sort -rh:以可读的方式逆序排序。

    • -r:逆序排序结果。
    • -h:以可读格式打印输出。

  • head -n 1:获取第一行,即最大文件。

    • -n 1 选项:获取第一行,即最大文件。


注,如下还有几个类似的命令组合都能获取指定目录下的最大文件,都属于 find 命令的应用:

# 语法一
find 指定目录 -type f -exec du -Sh {} + | sort -rh | head -n 1
# 示例一
find /root/ -type f -exec du -Sh {} + | sort -rh | head -n 1# 语法二
find 指定目录 -type f -print0 | xargs -0 du | sort -n | tail -n 1 | cut -f 2 | xargs -I {} du -sh {}
# 示例二
find /root/ -type f -print0 | xargs -0 du | sort -n | tail -n 1 | cut -f 2 | xargs -I {} du -sh {}# 语法三
find 指定目录 -type f -ls | sort -k 7 -n -r | head -n 1 | column -t | awk '{print $7,$11}'
# 示例三
find /root/ -type f -ls | sort -k 7 -n -r | head -n 1 | column -t | awk '{print $7,$11}'

Linux拓展之查找指定目录下的最大文件相关推荐

  1. linux如何查看指定目录下文件内容,Linux 系统下通过关键词查找指定目录下的文件内容...

    #!/bin/bash # 作者:靑龍一笑(C.S.Ricen) # 功能:根据指定的关键词,查找指定目录下的文件内容 # 要查找的目录 Search_Dir=/opt/datas/ # 关键字列表 ...

  2. findfirst findnext 递归查找指定目录下所有子目录下所有文件,为什么总是死机?...

    findfirst findnext 递归查找指定目录下所有子目录下所有文件,为什么总是死机? Delphi / Windows SDK/API http://www.delphi2007.net/D ...

  3. VBA实战技巧精粹012:查找指定目录下的指定文件及Dir函数用法

    问题:有处理学生评语,限于网络条件,往往学生提交的都是单个文件,这就需要将其一一提取出来,然后进行判断.导出等操作,但首先要解决的就是查找所有文件如何操作,这里需要用到Dir函数,当然创建一个文件搜索 ...

  4. [Linux C]列出指定目录下的所有文件(夹)

    在Linux下,用C语言实现列出指定目录下的所有文件和文件夹: #include <stdio.h> #include <dirent.h> #include <stdl ...

  5. linux 复制指定目录下的全部文件到另一个目录中,linux cp 文件夹

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. linux复制指定目录下的全部文件到另一个目录中 复制指定目录下的全部文件到另一个目录中 文件及目录 ...

  6. 【文件IO】Linux 文件操作(一) —— 遍历指定目录下的所有文件

    目录 一.访问目录相关函数 1.打开/访问目录 (opendir / fdopendir) 2.读取目录内容 (readdir) 3.关闭目录 (closedir) 二.遍历指定目录下的所有文件 一. ...

  7. linux cp目录到指定目录,linux复制指定目录下的全部文件到另一个目录中,linux cp 文件夹...

    解压war包    jar -xvf   xxxx.war linux复制指定目录下的全部文件到另一个目录中 复制指定目录下的全部文件到另一个目录中 文件及目录的复制是经常要用到的.linux下进行复 ...

  8. 将linux目录中的特定文件推送到手机_linux复制指定目录下的全部文件到另一个目录中,linux cp 文件夹...

    linux复制指定目录下的全部文件到另一个目录中 复制指定目录下的全部文件到另一个目录中 文件及目录的复制是经常要用到的.linux下进行复制的命令为cp. 假设复制源目录 为 dir1 ,目标目录为 ...

  9. html复制文件到目录,复制指定目录下的全部文件到另一个目录中

    linux下文件的复制.移动与删除命令为:cp,mv,rm 复制指定目录下的全部文件到另一个目录中 假设复制源目录 为 dir1 ,目标目录为dir2.怎样才能将dir1下所有文件复制到dir2下了 ...

最新文章

  1. Java开发最常犯的10个错误,打死都不要犯!
  2. 编译执行和解释执行的区别
  3. 【Python入门】列表的常用操作,这十张图把它说的明明白白!
  4. vs python生成exe文件_使用VScode编写python程序并打包成.exe文件-文件夹变成exe
  5. Webpack 配置摘要
  6. PHP获得文件的md5并检验是否被修改
  7. eclipse import的项目报autowired cannot be resolved to a type的错误
  8. 斐讯K3c基于frp内网穿透
  9. pbs分解_谈WBS与PBS
  10. 微信号码检测工具为什么不能免费使用?(2017)
  11. NOIP模拟题——复制粘贴2
  12. 跟着团子学SAP PS:项目计划成本与项目预算设计思路
  13. java jmx 监控tomcat_通过Tomcat开启JMX监控的方法图解
  14. 迅雷CTO李金波的一篇文章,给自己 mark 下一个指引吧!
  15. 在线电子书阅读微信小程序 毕业设计(2)分类
  16. AM335x SPL
  17. php八进制十六进制,php 实现进制转换(二进制、八进制、十六进制)互相转换实现代码...
  18. 0基础如何成为游戏美术设计师
  19. linux操作命令comm,一天一个shell命令 文本操作系列-comm命令用法
  20. JDK有BUG!!!

热门文章

  1. Java并发多线程高频面试题
  2. redux简单使用 逆战班
  3. ubuntu 10.04 连接电信无线(客户端连接ChinaNet)
  4. 微信更新8.0.8正式版,QQ大呼内行,可以改铃声
  5. 银行的本质:服务经济,管理风险
  6. Fortnite 和魔兽世界可以教会我们什么是元宇宙?
  7. Linux搭建测试环境(一)_JDK的安装
  8. 伦敦银最新价格走势图与买卖点
  9. linux中epoll原理,Linux下selectpollepoll的实现原理(一)
  10. 数据库结构设计(逻辑设计和物理设计)