如何删除隐藏在挂载点下的文件

树莓派4B 的根目录空间满了。一个原因是 TF 卡太小了,只有 16G ,装了个 texlive 就要用掉大概 4G 左右,可能该换个 32G 的 TF 卡了。

排查

挂载点

一开始忘记了检查 /tmp,只看到 /usr//var 占空间比较大,但是加起来也只有 8G,不至于占满空间,因此想到可能是挂载点文件夹在挂载之前就有文件?但是挂载点都在用着,不方便直接 umount

查看挂载点被那些进程使用有两种方法,lsoffuser,示例如下:

想找到一种不用 umount 就能查看挂载点原始文件大小的方法。搜索关键词 delete file in mount point after mount,在参考资料1 中找到答案:

This will mount your root partition in /mnt/root. Current mountpoints are not affected, so when looking in /mnt/root, you will see the original directory contents.

askubuntu.com

临时目录

按照上节中的方法操作,发现挂载点并没有占空间,然后执行 du -sh /* 才发现 /tmp 很大,这才想起来是 gs 命令生成的临时文件占了很大的磁盘空间,执行 gs 命令时忘记了加环境变量 TEMP,即使用 TEMP=/nas/tmp gs .... 来执行 gs 命令。

以下代码可以看到 gs 临时文件是很大的。

参考资料

One thought on “如何删除隐藏在挂载点下的文件

  1. dd bs=8k count=4k if=/dev/zero of=test.log conv=fdatasync
    > 加入这个参数后,dd命令执行到最后会真正执行一次“同步(sync)”操作,,这样算出来的时间才是比较符合实际使用结果的。conv=fdatasync表示只把文件的“数据”写入磁盘,fsync 与fdatasync相差不大。(重要,最有参考价值)
    > https://www.iteye.com/blog/elf8848-2089055

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注