Linux 实用命令汇总

一、查找某个目录下最大的10个文件

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

注:-print0的目的是为了避免查找的文件中文件名包含空格会引起后续的xargs命令出现问题。-print0和xargs后面的-0是对应的。

二、查找已被删除但是磁盘空间未释放的最大的10个文件

lsof -s | grep deleted | sort -nr -k7 | head -n 10

注:何时会执行这个命令呢?一般的心路历程大致如下:通过df命令发现磁盘空间不足,然后通过上文的命令一,找到最大的N个文件(一般都是些日志文件),通过rm命令将这些文件删除,然后df发现磁盘空间并没有释放掉。这是由于打开这些文件的进程并没有终止导致的,因此需要通过该命令找出打开这些文件的进程号,再kill -9将其杀掉,空间即可释放。命令中之所以加上-s是为了跟后面的sort配合,sort中的-k7的含义是根据第7列进行排序,默认不指定-s的话,lsof命令显示的第7列的列名为"SIZE/OFF",显然表示这一列会有两种含义,对于有大小的文件,这一列展示文件的大小,但是有些文件是没有大小的,如TCP连接,这时这一列的值会展示"0t0"这种的形式,显然不能跟文件大小这样的数值一起排序,因此指定-s,那么这一列的列名就只会显示"SIZE",对于那些没有大小的文件,这一列的值会留空。

三、查找当前目录下创建时间大于3天的文件并删除

find . -ctime +3  -exec rm -rf {} \;

注:-ctime中的’c’表示创建时间,如果是访问时间则是-atime,如果是修改时间则是-mtime,find-exec 选项结合具有非常大的威力,-exec 后面跟上需要执行的命令, {}代表find找出来的每一项目录或者文件,\;用于结束命令。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值