1 Linux下查看文件和文件夹大小html
当磁盘大小超过标准时会有报警提示,这时若是掌握df和du命令是很是明智的选择。linux
df能够查看一级文件夹大小、使用比例、档案系统及其挂入点,但对文件却无能为力。正则表达式
du能够查看文件及文件夹的大小。网络
二者配合使用,很是有效。好比用df查看哪一个一级目录过大,而后用df查看文件夹或文件的大小,如此即可迅速肯定症结。学习
下面分别简要介绍spa
//能够用来查看分区的文件系统 df -T
df命令能够显示目前全部文件系统的可用空间及使用情形,请看下列这个例子:debug
df -h
参数 -h 表示使用「Human-readable」的输出,也就是在档案系统大小使用 GB、MB 等易读的格式。日志
上面的命令输出的第一个字段(Filesystem)及最后一个字段(Mounted on)分别是档案系统及其挂入点。咱们能够看到 /dev/sda1 这个分割区被挂在根目录下。orm
接下来的四个字段 Size、Used、Avail、及 Use% 分别是该分割区的容量、已使用的大小、剩下的大小、及使用的百分比。 FreeBSD下,当硬盘容量已满时,您可能会看到已使用的百分比超过 100%,由于 FreeBSD 会留一些空间给 root,让 root 在档案系统满时,仍是能够写东西到该档案系统中,以进行管理。server
ps:实战经验,二者配合使用
//查看系统中文件的使用状况 df -h //查看当前目录下各个文件及目录占用空间大小 du -sh * //方法一:切换到要删除的目录,删除目录下的全部文件 rm -f * //方法二:删除logs文件夹下的全部文件,而不删除文件夹自己 rm -rf log/*
下面的删除方式暂何尝试。
ls *.log | xargs rm -f
du:查询文件或文件夹的磁盘使用空间
若是当前目录下文件和文件夹不少,使用不带参数du的命令,能够循环列出全部文件和文件夹所使用的空间。这对查看到底是那个地方过大是不利的,因此得指定深刻目录的层数,参数:--max-depth=,这是个极为有用的参数!
以下,注意使用“*”,能够获得文件的使用空间大小.
提醒:一贯命令比linux复杂的FreeBSD,它的du命令指定深刻目录的层数倒是比linux简化,为 -d。
du -h --max-depth=1 /home
下面的命令与上面的命令有什么异同??
答:du -h --max-depth=1 /home仅列出home目录下面全部的一级目录文件大小;
du -h --max-depth=1 /home/* 列出home下面全部一级目录的一级目录文件大小。
du -h --max-depth=1 /home/*
统计总数大小
du -sh xmldb/
du -sm * | sort -n //统计当前目录大小 并安大小 排序
du -sk * | sort -n
du -sk * | grep guojf //看一我的的大小
du -m | cut -d "/" -f 2 //看第二个/ 字符前的文字
查看此文件夹有多少文件 /*/*/* 有多少文件
du xmldb/
du xmldb/*/*/* |wc -l
40752
解释:
wc [-lmw]
参数说明:
-l :多少行
-m:多少字符
-w:多少字
ps:注意man命令的使用,按“q”键能够退出man查询。
#man ls …… -h, --human-readable print sizes in human readable format (e.g., 1K 234M 2G) …… # ls cuss.war nohup.out # ls -l total 30372 -rw-r--r-- 1 root root 31051909 May 24 10:07 cuss.war -rw------- 1 root root 0 Mar 20 13:52 nohup.out # ls -lh total 30M -rw-r--r-- 1 root root 30M May 24 10:07 cuss.war -rw------- 1 root root 0 Mar 20 13:52 nohup.out # ll -h total 30M -rw-r--r-- 1 root root 30M May 24 10:07 cuss.war -rw------- 1 root root 0 Mar 20 13:52 nohup.out
#删除keep文件以外的全部文件
rm -rf !(folder)
#删除folder1和folder2文件以外的全部文件
rm -rf !(folder1 | folder2)
#删除keep文件以外的全部文件
ls | grep -v keep | xargs rm
#删除当前test文件夹中keep文件以外的全部文件
find ./test/ | grep -v keep | xargs rm
#删除keep之外的其余文件。
find ./ -name '[^k][^e][^e][^p]*' -exec rm -rf {} \;
#删除keep之外的其余文件。推荐!
find ./ -name '[^k][^e][^e][^p]*' | xargs rm -rf
删除要慎重
#删除生成 core,mbox等文件
find / -name core|xargs rm –rf
#删除日志
rm -rf /var/log/*
问题:日志文件中有不少文件,我想删除除debug.log 和sys.out 文件外的全部文件。
首先我要可以找到debug.log和sys.out这两个文件——
#创建查找规则 vi test.txt ^debug.log$ ^sys.out$
尝试查找:
linux-hipe:/home/tws/server/basedata-server/logs # ls | grep -f test.txt debug.log sys.out
删除要保留文件外的其它文件:
ls | grep -vf test.txt |xargs rm #记得加v,保留要保留的文件,不要删错了
#删除,文件名中带有数字,超过30天的日志:
find -mtime +30 -name "*[0-9]*" -exec rm {} \;
关于find命令,请参考博文:
若是您以为阅读本文对您有帮助,请点一下“推荐”按钮,让更多的人可以享受到获取知识的快乐!由于本人初入职场,鉴于自身阅历有限,因此本博客内容大部分来源于网络中已有知识的汇总,欢迎各位转载,评论,你们一块儿学习进步!若有侵权,请及时和我联系,切实维护您的权益!