• 176阅读
  • 2回复

Linux下查看文件和文件夹大小 删除系统日志等

楼层直达
- A)XYz  
0w<G)p~%n  
U1~6o"1H  
[font=&quot]场景:在sts中执行自动部署时候maven提示No space left on device错误,后来经检查发现是磁盘空间满了,用下面的方法分析发现tomcat下面的logs目录占用了很大的空间,删除多余的日志问题解决! { ((|IvP`  
SRBQ"X[M2  
[font=&quot]1 Linux下查看文件和文件夹大小 Kta7xtu  
fkW TO"f-  
z4iZE*ZS  
当磁盘大小超过标准时会有报警提示,这时如果掌握df和du命令是非常明智的选择。 FNB4YZ6  
df可以查看一级文件夹大小、使用比例、档案系统及其挂入点,但对文件却无能为力。 ``9`Xq  
du可以查看文件及文件夹的大小。 A@qwD300Vo  
  两者配合使用,非常有效。比如用df查看哪个一级目录过大,然后用df查看文件夹或文件的大小,如此便可迅速确定症结。 =!Ce#p?h,  
  下面分别简要介绍 \Cz uf   
;"j>k>tg  
1.1 df命令 G$_=rHt_%  
"+GKU)  
:3$-Qv X  
//可以用来查看分区的文件系统df -T "[M k5tM  
HMrl!;:  
Wi3St`$  
df命令可以显示目前所有文件系统的可用空间及使用情形,请看下列这个例子: Y[WL}:"93  
df -h [yf&]0  
%}x$YD O  
    参数 -h 表示使用「Human-readable」的输出,也就是在档案系统大小使用 GB、MB 等易读的格式。 AKkr )VgY  
    上面的命令输出的第一个字段(Filesystem)及最后一个字段(Mounted on)分别是档案系统及其挂入点。我们可以看到 /dev/sda1 这个分割区被挂在根目录下。 Rd^X.  
    接下来的四个字段 Size、Used、Avail、及 Use% 分别是该分割区的容量、已使用的大小、剩下的大小、及使用的百分比。 FreeBSD下,当硬盘容量已满时,您可能会看到已使用的百分比超过 100%,因为 FreeBSD 会留一些空间给 root,让 root 在档案系统满时,还是可以写东西到该档案系统中,以进行管理。 sUEvL( %nY  
0b~{l;  
1.2 du命令   syR +;  
Y,;$RV@g  
byB ESyV!O  
ps:实战经验,两者配合使用 R;2q=%  
iD-,C`  
//查看系统中文件的使用情况df -h//查看当前目录下各个文件及目录占用空间大小du -sh *//方法一:切换到要删除的目录,删除目录下的所有文件rm -f *//方法二:删除logs文件夹下的所有文件,而不删除文件夹本身rm -rf log/* QYj8c]8f  
j\9v1O!T  
xHo iu$i6  
下面的删除方式暂未尝试。 s`E^1jC  
ls *.log | xargs rm -f e+ckn   
[sF z ;Py]  
B^C!UWN>%X  
e6JT|>9A7  
13v#  
du:查询文件或文件夹的磁盘使用空间 SC 6cFyp2  
    如果当前目录下文件和文件夹很多,使用不带参数du的命令,可以循环列出所有文件和文件夹所使用的空间。这对查看究竟是那个地方过大是不利的,所以得指定深入目录的层数,参数:--max-depth=,这是个极为有用的参数! u(92y]3,  
如下,注意使用“*”,可以得到文件的使用空间大小. p[Yja y+  
    提醒:一向命令比linux复杂的FreeBSD,它的du命令指定深入目录的层数却是比linux简化,为 -d。 EX.`6,:+2  
vsU1Lzna6@  
du -h --max-depth=1 /home |&hu3-(  
Oi~ ]~+2  
下面的命令与上面的命令有什么异同?? 6I yD7PQ  
答:du -h --max-depth=1 /home仅列出home目录下面所有的一级目录文件大小;du -h --max-depth=1 /home/* 列出home下面所有一级目录的一级目录文件大小。 b9(_bsc  
du -h --max-depth=1 /home/* 9N kr=/I"P  
1.3 查看linux文件目录的大小和文件夹包含的文件数 Vs0T*4C=n  
    统计总数大小 ?%Pd:~4D  
    du -sh xmldb/ Hi{1C"%  
    du -sm * | sort -n //统计当前目录大小 并安大小 排序 f 4Yn=D=_  
    du -sk * | sort -n 1dgy-$H~  
    du -sk * | grep guojf //看一个人的大小 wx,yx3c (  
    du -m | cut -d "/" -f 2 //看第二个/ 字符前的文字 t|ih{0  
    查看此文件夹有多少文件 /*/*/* 有多少文件 |*w}bT(PfR  
    du xmldb/ uR:@7n  
    du xmldb/*/*/* |wc -l Q{~WWv  
    40752 }{(dG7G+  
    解释: 9O.okU  
    wc [-lmw] S1B^FLe7X  
    参数说明: scsN2#D7U/  
    -l :多少行 l; ._ ?H  
    -m:多少字符 gq^j-!Q)Q<  
    -w:多少字 Wt%+q{  
88GS Bg:YH  
1.4 Linux:ls以K、M、G为单位查看文件大小 =y$|2(6  
5ZXP$.  
k[`9RGT  
ps:注意man命令的使用,按“q”键可以退出man查询。 k\qF> =  
e;kH,fHUI3  
#man ls……-h, --human-readableprint sizes in human readable format (e.g., 1K 234M 2G)……# lscuss.war    nohup.out# ls -ltotal 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 -lhtotal 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 -htotal 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}|# %4d  
xxsax/h  
_Prh&Q1zs  
- DO  
2 删除系统日志等 ID#p5`3n  
yFYFFv\?  
=Z3{6y}3p  
E=-ed9({:  
2.1 规范 V?.')?'V  
su/!<y  
q, 8TOn  
linux下删除指定文件之外的其他文件 /{[Y l[{"<  
S^Lu RF]F  
一、Linux下删除文件和文件夹常用命令如下: *Va;ra(V2  
删除文件: rm file  www.2cto.com   Hz*5ZIw  
删除文件夹: rm -rf dir T ke3X\|  
需要注意的是, rmdir 只能够删除 空文件夹。 i; qb\  
4Pbuv6`RK  
二、删除指定文件(夹)之外的所有文件呢? "}ms|  
Z4^O`yS9+  
Aa.eu=@I  
  • 需要在当前文件夹中进行: p-6Y5$Y  
    #删除keep文件之外的所有文件rm -rf !(folder)#删除folder1和folder2文件之外的所有文件rm -rf !(folder1 | folder2)
d3m!34ml  
  • 当前文件夹中结合使用grep和xargs来处理文件名: o*[n[\cR  
    #删除keep文件之外的所有文件ls | grep -v keep | xargs rm  
Cggu#//Z}Q  
说明: ls先得到当前的所有文件和文件夹的名字, grep -v keep,进行grep正则匹配查找keep,-v参数决定了结果为匹配之外的结果,也就是的到了keep之外的所有文件名,然后 xargs用于从 标准输入获得参数 并且传递给后面的命令,这里使用的命令是 rm,然后由rm删除前面选择的文件。  ^n5rUwS>  
好处:使用了grep来正则表达式来匹配文件名字,可以一次保留多个文件,从而进行更加准确的处理。 F1Jd-3ei  
0gLl>tF[H  
  • 使用find命令代替ls,改进方法3从而能够处理制定文件夹的文件: _uYidtxo=  
    #删除当前test文件夹中keep文件之外的所有文件find ./test/ | grep -v keep | xargs rm
z!M8lpI M  
说明,用grep而不用find -name选取名字,因为find选取名字时比较麻烦,对正则表达式支持不够,无法排除指定文件名。 )g()b"Z #>  
ho'Ihep,L  
  • 直接使用find命令删除其他文件: u{6b>c|,X  
    #删除keep以外的其他文件。find ./ -name '[^k][^e][^e][^p]*'  -exec rm -rf {} \;#删除keep以外的其他文件。推荐!find ./ -name '[^k][^e][^e][^p]*'  | xargs rm -rf  
XtJIaD|:3  
说明:上面第二行的代码效率高些,原因在于删除多个文件时 -exec会启动多个进程来处理,而xargs会启动一个rm进程来处理。 !a.|URa7  
(R9{wGV [  
3 实践 V!{}%;f  
K+s@.D9J  
M_OvIU(E  
删除要慎重 D(' w<9.  
)w t mc4'  
3.1 保留删除 '4"9f]:  
DL t"cAW  
 y[C++Q  
[img]https://images2015.cnblogs.com/blog/755171/201706/755171-20170628150241039-913260357.png[/img] I: L}7uA[t  
At0ahy+  
#删除生成 core,mbox等文件find / -name core|xargs rm –rf#删除日志rm -rf /var/log/* g5YDRL!Wh  
c)b/"  
zc`gm~@  
问题:日志文件中有很多文件,我想删除除debug.log 和sys.out 文件外的所有文件。 #Ns]l<  
[img]https://images2015.cnblogs.com/blog/755171/201706/755171-20170628153440914-1932017001.png[/img] =hP7 Hea(N  
首先我要能够找到debug.log和sys.out这两个文件—— H,{WrWA  
#建立查找规则vi test.txt^debug.log$^sys.out$ ]SO-NR  
尝试查找: Nueb xd  
linux-hipe:/home/tws/server/basedata-server/logs # ls | grep -f test.txtdebug.logsys.out ,\Q^[e!m~  
删除要保留文件外的其它文件: l9P=1TL  
ls | grep -vf test.txt |xargs rm#记得加v,保留要保留的文件,不要删错了 R^ln-H;  
\Zgc [F  
#删除,文件名中带有数字,超过30天的日志:find -mtime +30 -name "*[0-9]*" -exec rm {} \;
只看该作者 安逸沙发  发表于: 02-22
ls -l |grep "^-"|wc -l \+]U1^  
zG\g{cB  
n|t?MoUP  
vx:MLmZ.  
find ./company -type f | wc -l tY?_#rc  
gmU_# J%~  
查看某文件夹下文件的个数,包括子文件夹里的。 wz!a;]agg  
!ke_?+ 8sY  
ls -lR|grep "^-"|wc -l f.V1  
N|Cx";,|FZ  
查看某文件夹下文件夹的个数,包括子文件夹里的。 ~VNN  
-P|EV|8=  
ls -lR|grep "^d"|wc -l YeN /J.R  
3Uzb]D~u  
说明: 8vzjPWu  
"qL4D4  
ls -l Hwr# NKz-  
)_*<uSl  
长列表输出该目录下文件信息(注意这里的文件,不同于一般的文件,可能是目录、链接、设备文件等) Vb${Oy+  
Va^AEuzF  
grep "^-" VieX 5  
[kdt]+'+  
这里将长列表输出信息过滤一部分,只保留一般文件,如果只保留目录就是 ^d #+mt}w/  
MQL1/>j;  
wc -l }*WNrS">S  
'4gi*8Y  
统计输出信息的行数,因为已经过滤得只剩一般文件了,所以统计结果就是一般文件信息的行数,又由于 }E=:k&IDPB  
r 5!ie!5gE  
一行信息对应一个文件,所以也就是文件的个数。 \Y)pm9!  
@"BvyS,p  
C4Pi6.wf  
aGK=VN}r  
Linux查看文件夹大小 ML6V,V/e  
K6#9HF'2I  
du -sh 查看当前文件夹大小 @(XX68  
wRgh`Hc\}  
du -sh * | sort -n 统计当前文件夹(目录)大小,并按文件大小排序 k+xj 2)d7  
`aY{$>$S  
du -sk filename 查看指定文件大小
快速回复

限100 字节
安逸网提示:如果您提交过一次失败了,可以用”恢复数据”来恢复帖子内容
 
认证码:
上一个 下一个