玛卡巴卡的卡巴卡玛 发表于 2024-11-28 06:23:26

Linux 命令行检察当前目录的总巨细/总磁盘空间/磁盘清理

一、du 检察目录空间巨细

(一) du 命令解析

在Linux命令行可以使用 du 命令来检察当前目录的总巨细。du 是 disk usage 的缩写,表示磁盘使用情况。
命令表明:总结每个文件的磁盘使用情况,递归地用于目录。
使用格式:
   du … …
常用选项:
-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) 显示;
运行结果如下:
https://i-blog.csdnimg.cn/direct/74a79e3d8f9548d69366c27d698d25ad.png
别的,du -sh还可以检察指定目录或文件的总巨细:
du -sh /home/samba/00_thirdLib/
https://i-blog.csdnimg.cn/direct/06d819c6c5d743aa9f205699e22282d2.png
   du -sh ./a.out sscanf.c
https://i-blog.csdnimg.cn/direct/9c51b9a8da2f43bd92f8bec000e6ab7d.png
du --apparent-size:显示文件或目录自身巨细,而不是它们占用的磁盘空间巨细。文件或目录占用磁盘空间的巨细与它们自身巨细有时间并非完全一致;这种征象非linux所独有,windows里也是如此。


[*]du -c:使用此选项时,不仅显示几个文件或目录各自占用磁盘空间的巨细,还统计它们的总和。
# 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 表示检察当前目录的巨细,及当前目录各个子目录的巨细,以及子目录的子目录巨细;
看例子演示:
https://i-blog.csdnimg.cn/direct/07b6d4f4645a40a184159ea302e3a58f.png
(四)du 命令检察除了子目录之外的总巨细

du 命令使用 -S 选项可以检察当前目录下除了子目录之外的全部文件的巨细,下面命令显示当前除了子目录之外整个目录巨细:
   du -Sh
还可以检察指定目录,命令如下:
   du -Sh 01_fileOpe/
下图是先检察01_fileOpe的巨细是496K,然后使用-S检察除了子目录外的巨细是 492K :
https://i-blog.csdnimg.cn/direct/bbdb07044f75455ab652b751b01d037e.png
二 、df 检察挂载磁盘空间巨细

df命令检察文件体系的磁盘使用情况和空间巨细。默认情况下,df会显示全部已挂载文件体系的磁盘使用量
基本命令格式如下:
   df
假如你想看到人类可读的格式(比方,以MB,GB来表示),可以加上-h参数:
   df -h
假如你只对特定的文件体系感爱好,可以指定其挂载点或装备名,比方:
   df -h /dev/sda1
df可以检察一级文件夹巨细、使用比例、档案体系及其挂入点。
# df -Th
Filesystem   Type      SizeUsed Avail Use% Mounted on
/dev/vda1      ext4       40G   35G3.1G92% /
devtmpfs       devtmpfs1.9G   01.9G   0% /dev
tmpfs          tmpfs   1.9G   01.9G   0% /dev/shm
tmpfs          tmpfs   1.9G191M1.7G11% /run
tmpfs          tmpfs   1.9G   01.9G   0% /sys/fs/cgroup
tmpfs          tmpfs   379M   0379M   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 "**" -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,保留要保留的文件,不要删错了

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: Linux 命令行检察当前目录的总巨细/总磁盘空间/磁盘清理