Linux 命令行查看当前目录的总大小/总磁盘空间/磁盘清理

一、du 查看目录空间大小

(一) du 命令解析

在Linux命令行可以使用 du 命令来查看当前目录的总大小。du 是 disk usage 的缩写,表示磁盘使用情况。

命令解释:总结每个文件的磁盘使用情况,递归地用于目录。

使用格式:

du OPTION... FILE...

常用选项OPTION:

-a :列出所有的文件与目录容量,因为默认仅统计目录底下的文件量而已。

-a:显示目录占用的磁盘空间大小,还要显示其下目录和文件占用磁盘空间的大小。

-h :以人们较易读的容量格式 (G/M) 显示;

-s :列出总量而已,而不列出每个目录占用容量;

-S :不包括子目录下的总计,与 -s 有点差别。

-k :以 KBytes 列出容量显示;

-m :以 MBytes 列出容量显示;

-d(--max-depth=N):查看当前目录使用的总空间大小。N表示深度,为0表示列出当前目录的总大小,为1表示列表当前目录及各个子目录的总大小,为2则更深一级的目录。

--apparent-size:显示目录或文件自身的大小。

-l :统计硬链接占用磁盘空间的大小。

-L:统计符号链接所指向的文件占用的磁盘空间大小。

默认情况下,du不显示目录下文件占用磁盘空间的信息,但它会显示其下子目录占用磁盘空间的信息;而使用-s选项以后,只显示xx目录占用磁盘空间的大小。

(二)du 命令查看目录总大小

du -sh

列出当前目录总大小,而不列出各个文件的大小。以人们较易读的容量格式 (G/M) 显示;

运行结果如下:

另外,du -sh还可以查看指定目录或文件的总大小:

复制代码
du -sh /home/samba/00_thirdLib/

du -sh ./a.out sscanf.c

du --apparent-size:显示文件或目录自身大小,而不是它们占用的磁盘空间大小。文件或目录占用磁盘空间的大小与它们自身大小有时候并非完全一致;这种现象非linux所独有,windows里也是如此。

  • du -c:使用此选项时,不仅显示几个文件或目录各自占用磁盘空间的大小,还统计它们的总和。

    [root@oms ~]# du -csh /opt/software /var/log
    31G /opt/software
    224M /var/log
    32G total

  • du命令还可以对结果进行排序,以方便快速找出占用空间最多目录。

    du -s 目录 | sort -rn #这是按字节排序
    du -sh 目录 | sort -rn #这是按兆(M)来排序
    #由于-sh大小显示看起来是乱的,因此建议使用du -s|sort -nr

    du -s 目录 | sort -rn | head #选出排在前面的10个
    du -s 目录 | sort -rn | tail #选出排在后面的10个

(三)du 命令查看目录指定层级的大小

-d 或 --max-depth=N可以指定du命令查看哪个目录层级的总大小。

-d0 或 --max-depth=0 表示查看当前目录的大小;

-d1 或 --max-depth=1 表示查看当前目录的大小,及当前目录各个子目录的大小;

-d2 或 --max-depth=2 表示查看当前目录的大小,及当前目录各个子目录的大小,以及子目录的子目录大小;

看例子演示:

(四)du 命令查看除了子目录之外的总大小

du 命令使用 -S 选项可以查看当前目录下除了子目录之外的所有文件的大小,下面命令显示当前除了子目录之外整个目录大小:

du -Sh

还可以查看指定目录,命令如下:

du -Sh 01_fileOpe/

下图是先查看01_fileOpe的大小是496K,然后使用-S查看除了子目录外的大小是 492K :

二 、df 查看挂载磁盘空间大小

df命令查看文件系统的磁盘使用情况和空间大小。默认情况下,df会显示所有已挂载文件系统的磁盘使用量

基本命令格式如下:

df

如果你想看到人类可读的格式(例如,以MB,GB来表示),可以加上-h参数:

df -h

如果你只对特定的文件系统感兴趣,可以指定其挂载点或设备名,例如:

df -h /dev/sda1

df可以查看一级文件夹大小、使用比例、档案系统及其挂入点。

复制代码
[root@oms ~]# df -Th
Filesystem     Type      Size  Used Avail Use% Mounted on
/dev/vda1      ext4       40G   35G  3.1G  92% /
devtmpfs       devtmpfs  1.9G     0  1.9G   0% /dev
tmpfs          tmpfs     1.9G     0  1.9G   0% /dev/shm
tmpfs          tmpfs     1.9G  191M  1.7G  11% /run
tmpfs          tmpfs     1.9G     0  1.9G   0% /sys/fs/cgroup
tmpfs          tmpfs     379M     0  379M   0% /run/user/0

-T:可以用来查看分区的文件系统。

-h:表示使用「Human-readable」的输出,也就是在档案系统大小使用 GB、MB 等易读的格式。

上面的命令输出的第一个字段(Filesystem)及最后一个字段(Mounted on)分别是档案系统及其挂入点。我们可以看到 /dev/vda1 这个分割区被挂在根目录下。

接下来的四个字段 Size、Used、Avail、及 Use% 分别是该分割区的容量、已使用的大小、剩下的大小、及使用的百分比。 FreeBSD下,当硬盘容量已满时,您可能会看到已使用的百分比超过 100%,因为 FreeBSD 会留一些空间给 root,让 root 在档案系统满时,还是可以写东西到该档案系统中,以进行管理。

三 rm清理磁盘

linux下删除指定文件、文件夹:rm

  一、Linux下删除文件和文件夹常用命令如下:

  删除文件: rm file1 file2

  删除文件夹: rm -rf dir

  注意:rmdir 只能够删除 空文件夹。

二、删除指定文件(夹)之外的所有文件

  需要在当前文件夹中进行:

复制代码
#删除keep文件之外的所有文件
rm -rf !(folder)

#删除folder1和folder2文件之外的所有文件
rm -rf !(folder1 | folder2) 

删除超过一个月时间的日志文件:

复制代码
#删除,文件名中带有数字,超过30天的日志:
find -mtime +30 -name "*[0-9]*" -exec rm {} \;

注:可以根据名称规则过滤。

三、实践:删除除debug.log 和sys.out 文件外的所有文件。

复制代码
#建立查找规则
 vi test.txt 

^debug.log$
^sys.out$

#尝试查找:
ls | grep -f test.txt 
debug.log
sys.out

#删除要保留文件外的其它文件:
ls | grep -vf test.txt |xargs rm
#记得加v,保留要保留的文件,不要删错了
相关推荐
雯宝11 小时前
usb_serial_generic_register
linux
SL_staff11 小时前
BI大屏嵌入MES的登录态难题:JVS统一账号体系实战解法
java·数据分析·数据可视化
乌暮11 小时前
综合案例:宠物电商系统
java·开发语言·spring·mvc·restful·1024程序员节
VimorphTech11 小时前
一段字幕太长,怎样拆句并安排显示时间?
java·spring boot
万联WANFLOW11 小时前
Kimi K3.1 Pro 接口接入指南:模型选型、费用计算与零数据保留
java·spring boot·python·安全·spring·大模型
织码weavecodes11 小时前
新闻资讯模块设计:内容发布、阅读计数与附件鉴权
java·服务器·数据库
学到老活到老11 小时前
Spring 事务怎样生效?为什么加了 @Transactional 仍不回滚?
java·spring
学到老活到老11 小时前
Spring 怎样创建 Bean?@Autowired 在哪一步生效?
java·spring
用户1129361121911 小时前
我扫了项目里 739 个 Controller,发现最危险的越权漏洞不是没认证
java
疯狂的Meng11 小时前
我把第一周的 Linux 命令整理成了自己的手册(附 7 个我踩的坑)
linux