• 482阅读
  • 2回复

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

楼层直达
} GiHjzsR  
J^g!++|2P  
)=etG  
[font=&quot]场景:在sts中执行自动部署时候maven提示No space left on device错误,后来经检查发现是磁盘空间满了,用下面的方法分析发现tomcat下面的logs目录占用了很大的空间,删除多余的日志问题解决! Q0ON9gqqv  
_ :VB}>  
[font=&quot]1 Linux下查看文件和文件夹大小 $-*!pRaVU  
aVd,xl  
r#Oo nZ  
当磁盘大小超过标准时会有报警提示,这时如果掌握df和du命令是非常明智的选择。 D= h)&  
df可以查看一级文件夹大小、使用比例、档案系统及其挂入点,但对文件却无能为力。 = MOj|NR [  
du可以查看文件及文件夹的大小。 ok4@N @  
  两者配合使用,非常有效。比如用df查看哪个一级目录过大,然后用df查看文件夹或文件的大小,如此便可迅速确定症结。 #gcF"L||  
  下面分别简要介绍 L~NbdaO  
])!o5`ltZ  
1.1 df命令 [YcG(^^  
YS%h^>I^  
"UJ S5[7$  
//可以用来查看分区的文件系统df -T H?X|(r|+  
rq/I` :  
]f({`&K5  
df命令可以显示目前所有文件系统的可用空间及使用情形,请看下列这个例子: :FTMmW,>'  
df -h tyqT  
~15N7=wCM  
    参数 -h 表示使用「Human-readable」的输出,也就是在档案系统大小使用 GB、MB 等易读的格式。 "*srx]  
    上面的命令输出的第一个字段(Filesystem)及最后一个字段(Mounted on)分别是档案系统及其挂入点。我们可以看到 /dev/sda1 这个分割区被挂在根目录下。 uW} s)j.  
    接下来的四个字段 Size、Used、Avail、及 Use% 分别是该分割区的容量、已使用的大小、剩下的大小、及使用的百分比。 FreeBSD下,当硬盘容量已满时,您可能会看到已使用的百分比超过 100%,因为 FreeBSD 会留一些空间给 root,让 root 在档案系统满时,还是可以写东西到该档案系统中,以进行管理。 *=I}Qh(1  
YLzx<~E4a  
1.2 du命令   O4V.11FnW  
"Pu!dJ5[]  
K+3IWZ&+dG  
ps:实战经验,两者配合使用 U<_3^  
t>`a sL  
//查看系统中文件的使用情况df -h//查看当前目录下各个文件及目录占用空间大小du -sh *//方法一:切换到要删除的目录,删除目录下的所有文件rm -f *//方法二:删除logs文件夹下的所有文件,而不删除文件夹本身rm -rf log/* 8TLgNQP  
,}EC F>  
DVB{2~7 4  
下面的删除方式暂未尝试。 xp }hev^@$  
ls *.log | xargs rm -f ER5gmmVP@p  
Mn2QZp4  
%|g>%D3Z?  
J'SZ  
{*0<T|<n  
du:查询文件或文件夹的磁盘使用空间 a(kg/s  
    如果当前目录下文件和文件夹很多,使用不带参数du的命令,可以循环列出所有文件和文件夹所使用的空间。这对查看究竟是那个地方过大是不利的,所以得指定深入目录的层数,参数:--max-depth=,这是个极为有用的参数! p^%YBY#,H  
如下,注意使用“*”,可以得到文件的使用空间大小. kP#B5K_U|  
    提醒:一向命令比linux复杂的FreeBSD,它的du命令指定深入目录的层数却是比linux简化,为 -d。 l6YtEHNG  
Ir`eL  
du -h --max-depth=1 /home gVq;m>\|F  
'(f&P=[b  
下面的命令与上面的命令有什么异同?? ,Sq/y~  
答:du -h --max-depth=1 /home仅列出home目录下面所有的一级目录文件大小;du -h --max-depth=1 /home/* 列出home下面所有一级目录的一级目录文件大小。 y4*U6+#.  
du -h --max-depth=1 /home/* A?CcHw rT  
1.3 查看linux文件目录的大小和文件夹包含的文件数 %X4xv_o`f  
    统计总数大小 c(:f\Wc3Z  
    du -sh xmldb/ ?]Pmxp H}  
    du -sm * | sort -n //统计当前目录大小 并安大小 排序 +=q$x Ia  
    du -sk * | sort -n v1BDP<qU2  
    du -sk * | grep guojf //看一个人的大小 v@Gl|29_  
    du -m | cut -d "/" -f 2 //看第二个/ 字符前的文字 !n* +(lZ  
    查看此文件夹有多少文件 /*/*/* 有多少文件 &xa(BX%,c  
    du xmldb/ 2_n7=&  
    du xmldb/*/*/* |wc -l MS\>DW  
    40752 ^aH \7J@Y  
    解释: 6^]!gR#B  
    wc [-lmw] cW i}V  
    参数说明: <F}_ /q1  
    -l :多少行 )3~{L;q  
    -m:多少字符 <_3b1VhZ  
    -w:多少字 /9HVY %n  
gW-V=LV (  
1.4 Linux:ls以K、M、G为单位查看文件大小 a#>Yh;FA  
,=Mt`aN  
5qr'.m  
ps:注意man命令的使用,按“q”键可以退出man查询。 KO]T<R h<  
TNGU6j}oq  
#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 .u4 W /  
#)C[5?{SNq  
O+]Ifm[  
6"~P/\jP  
2 删除系统日志等 !t gi  
 \4v]7SV  
^-,xE>3o  
}Q=!Y>Tc  
2.1 规范 "x3lQ  
J/[=p<I)  
i*#-I3  
linux下删除指定文件之外的其他文件 DV<` K$ET  
L{h%f4Du#  
一、Linux下删除文件和文件夹常用命令如下: f!!V${)X  
删除文件: rm file  www.2cto.com   a2 Y;xe  
删除文件夹: rm -rf dir *#tJM.Z  
需要注意的是, rmdir 只能够删除 空文件夹。 :=wT vz  
)6|yb65ZUX  
二、删除指定文件(夹)之外的所有文件呢? 5[* qi?w=  
9Hc$G{[a  
`"&d a#N]  
  • 需要在当前文件夹中进行: L:1^Kxg  
    #删除keep文件之外的所有文件rm -rf !(folder)#删除folder1和folder2文件之外的所有文件rm -rf !(folder1 | folder2)
mo[Zb0>  
  • 当前文件夹中结合使用grep和xargs来处理文件名: -lhLA`6_R  
    #删除keep文件之外的所有文件ls | grep -v keep | xargs rm  
1#0{@35  
说明: ls先得到当前的所有文件和文件夹的名字, grep -v keep,进行grep正则匹配查找keep,-v参数决定了结果为匹配之外的结果,也就是的到了keep之外的所有文件名,然后 xargs用于从 标准输入获得参数 并且传递给后面的命令,这里使用的命令是 rm,然后由rm删除前面选择的文件。 O'W0q;rT  
好处:使用了grep来正则表达式来匹配文件名字,可以一次保留多个文件,从而进行更加准确的处理。 .h>8@5/s  
hA33K #bC  
  • 使用find命令代替ls,改进方法3从而能够处理制定文件夹的文件: j{Txl\D>  
    #删除当前test文件夹中keep文件之外的所有文件find ./test/ | grep -v keep | xargs rm
pb$~b\s]=  
说明,用grep而不用find -name选取名字,因为find选取名字时比较麻烦,对正则表达式支持不够,无法排除指定文件名。 V( -mD  
%5A+V0D0'  
  • 直接使用find命令删除其他文件: w Axrc+  
    #删除keep以外的其他文件。find ./ -name '[^k][^e][^e][^p]*'  -exec rm -rf {} \;#删除keep以外的其他文件。推荐!find ./ -name '[^k][^e][^e][^p]*'  | xargs rm -rf  
;~\MZYs3m  
说明:上面第二行的代码效率高些,原因在于删除多个文件时 -exec会启动多个进程来处理,而xargs会启动一个rm进程来处理。 >&p0d0  
=Q[b'*o7  
3 实践 JM\m)RH0  
QNxl/y\l0  
ODC8D>ZYl  
删除要慎重 YJl("MZ  
 R#DwF,  
3.1 保留删除 jMN[J|us51  
%B)6$!x  
A%{W{UP8N  
[img]https://images2015.cnblogs.com/blog/755171/201706/755171-20170628150241039-913260357.png[/img] ;x8k[p~2  
,ML[Wr'2  
#删除生成 core,mbox等文件find / -name core|xargs rm –rf#删除日志rm -rf /var/log/* ?w+Ix~k  
~2zM kVH  
m~D&gGFt  
问题:日志文件中有很多文件,我想删除除debug.log 和sys.out 文件外的所有文件。  aKd+CO:  
[img]https://images2015.cnblogs.com/blog/755171/201706/755171-20170628153440914-1932017001.png[/img] n9\]S7] 52  
首先我要能够找到debug.log和sys.out这两个文件—— A,) VM9M_l  
#建立查找规则vi test.txt^debug.log$^sys.out$ ?"KC-u|  
尝试查找: 4#'(" #R  
linux-hipe:/home/tws/server/basedata-server/logs # ls | grep -f test.txtdebug.logsys.out 1<<kA:d  
删除要保留文件外的其它文件: ,~);EC=`  
ls | grep -vf test.txt |xargs rm#记得加v,保留要保留的文件,不要删错了 u^j {U}  
7rC uu*M  
#删除,文件名中带有数字,超过30天的日志:find -mtime +30 -name "*[0-9]*" -exec rm {} \;
只看该作者 安逸沙发  发表于: 02-22
ls -l |grep "^-"|wc -l mu{\_JX.A  
\YPv pUg  
!LJ4 S  
Om(Ir&0  
find ./company -type f | wc -l @xeJ$ rlu  
2j&0U!DX  
查看某文件夹下文件的个数,包括子文件夹里的。 o8X? 1  
6x;!E&<  
ls -lR|grep "^-"|wc -l phR:=Ox|1  
>en\:pJn)'  
查看某文件夹下文件夹的个数,包括子文件夹里的。 ^<3{0g-"AW  
P4:Zy;$v!  
ls -lR|grep "^d"|wc -l e>x+Xj1  
Sd/7#  
说明: n~ZZX={a  
`Hqgahb{P  
ls -l %2\6.c=c  
r>gf&/Pl  
长列表输出该目录下文件信息(注意这里的文件,不同于一般的文件,可能是目录、链接、设备文件等) yxi&80$  
mkq246<D~  
grep "^-" -EP(/CS!  
> Edsanx  
这里将长列表输出信息过滤一部分,只保留一般文件,如果只保留目录就是 ^d CF:L#r  
WcY$=\7  
wc -l u@tH6k*cBz  
4C )sjk?m  
统计输出信息的行数,因为已经过滤得只剩一般文件了,所以统计结果就是一般文件信息的行数,又由于 !MVf(y$  
-3 Sb%V\  
一行信息对应一个文件,所以也就是文件的个数。 Cm]\5}Py  
'u%vpvF  
\4>w17qng  
=[zP  
Linux查看文件夹大小 {{B'65Wu  
2.N)N%@  
du -sh 查看当前文件夹大小 [LQOP3f  
-ssmj8:Q\|  
du -sh * | sort -n 统计当前文件夹(目录)大小,并按文件大小排序 1k^$:'  
cLRzm9  
du -sk filename 查看指定文件大小
快速回复

限100 字节
安逸网提示:如果您在写长篇帖子又不马上发表,建议存为草稿
 
认证码:
上一个 下一个