中如何刷新当前路由_在服务器中如何快速找到当前目录下最大的10个文件

没有那个单独的命令可以做到这一点,但Unix/Linux 命令的特点就是多个命令可以结合使用

比如管道命令 | ,可以将一个命令的输出作为另一个命令的输入,这大概是最强大的命令了吧,这个一定要学会,比如我就很喜欢用 cat xxx | grep xxx ,也没啥特别,就是找出文件中含 xxx 的部分

回到如何快速找出当前目录下最大的几个文件这个问题

说下思路

1. 先打印出所有的文件的路径 find ./ -type f

963f84dcbe80253e8de7c14f75351b75.png

2. 打印出以上文件的大小 du -h

c7443a7a31fe409bc95749efbfa1f635.png

3. 对以上文件从大到小排序 sort -rh

dbe619701600a2a63a066e347ae3af5b.png

这个 sort 命令有点意思,他并不能按文件大小排序,它能做的就是把一排排的文本按 ASCII 码的顺序打印出来,感叹一句 Unix/Linux 命令真是巧妙

5. 只需要 10 个结果 head -n 10,这个要放最后

大家看到这里应该发现问题了,第一步 find 明明只打印了文件,到后来怎么出现了文件夹

b1f4fd25d1eebb068f6db933ea943148.png

其实我也很疑惑,肯定是 find 通过这个管道传递给 du 的过程中出了问题

查了一下资料,find 的输出是文件名加一个换行符du 接受这个输入时会出现问题,我们需要用 -print0 选项把 find 输出的换行符改成 0,这个大家很熟悉吧,字符串的结束标志,再配合用 xargs 将其分割成小块传给 du 命令

这里可能有点难以理解,我也是,Unix/Linux 命令博大精深

最终命令

find ./ -type f -print0 | xargs -0 du -h | sort -rh | head -n 10

66c94da38c234f6146569b7c458e28d1.png

是不是觉得太长,改个名字吧,不如叫 fmax

大家千万别再服务器上用find / ,极有可能崩溃

更多命令可以查看这篇文章:

如何在 Linux 中查找最大的 10 个文件

ok了,希望这篇文章能对大家有所帮助

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值