一、背景
vscode是一个当前编程者常用的一个开发用的ide工具,使用它进行编程和阅读代码会提升不少效率。但是其实使用vscode会带来一些潜在的副作用,它会占用比较多的磁盘空间,如果不知道这个事情的话,就可能比较麻烦。
在下面第二章里,我们描述发现的现象,在第三章里给出解决办法,以及调查哪个任务在写什么文件的方法。
二、磁盘可用空间被未知的东西“禅食”
通过df -h可以查看到根文件系统对应的/dev/nvme0n1p2这个盘符的磁盘空间已经所剩无几了:
去根目录下去查看大小:
df -sh ./*
可以看到/home目录也是在该盘符上,占了大部分的空间,都有679g了。
到/home下,再通过du -sh去看是哪个文件夹占用这么多,可以如下图看到是/home目录占了679g:
而再到/home/zhaoxin目录下去查看哪个文件夹占了很多磁盘空间,就找不到了:
du -sh ./* | sort -hr可以看到并没有多大的空间。
三、遍历到隐藏文件夹的大小及调查程序是写哪些文件的方法
3.1 遍历到隐藏文件夹的大小
du -sh ./* .[^.]* | sort -hr如下图可以看到,上面的命令就可以遍历到隐藏的文件夹:
下面 3.2 里我们会将如何查看正在疯狂读写的进程在写什么文件的方法。
上图里的.cache文件夹里有vscode用于缓存一些数据用的。但是.cache文件夹也不全是都是vscode的:
但是vscode使用的还是比较多的:
我把vscode-cpptools里的内容全部删除,并没有影响vscode的运行。
3.2 查看程序访问哪些文件的方法
其实vscode经常会在使用时,在目标机器上疯狂地写入一些缓存文件到.cache目录,是如何发现的呢,我是通过iotop看到有任务名是cpptool的进程疯狂的在进行文件写入。
看到对应的pid是2884,然后通过下面的命令查看是读写哪些文件:
ll /proc/2884/fd如下图: