删除文件后保留空间

删除文件后保留空间

我删除了一个大约200GB大的文件,但看起来仍然因为某种原因保留了空间。我尝试用我发现的一堆命令清除它,但对我来说没有任何作用(对于保存在缓存中的文件,因为它们仍然被某些应用程序打开)。我也重启过很多次,但没有任何效果。

父文件夹仍然具有原始大小,但子文件夹的大小似乎都是正确的。

我希望有人知道为什么它仍然被保留或者我如何摆脱它。

du输出:

# du  -sh /home/vincent/
200G    /home/vincent/
# du -bsh /home/vincent/*
14K     /home/vincent/Desktop
8.2G    /home/vincent/Documents
3.8G    /home/vincent/Downloads
11K     /home/vincent/java_error_in_PHPSTORM_3425.log
1.8K    /home/vincent/java_error_in_PHPSTORM_6837.log
1.8K    /home/vincent/java_error_in_WEBIDE_3683.log
4.0K    /home/vincent/Music
0       /home/vincent/myCA.key
4.0K    /home/vincent/Pictures
39      /home/vincent/PlayOnLinux's virtual drives
8.0K    /home/vincent/Postman
4.0K    /home/vincent/Public
4.0K    /home/vincent/Templates
4.0K    /home/vincent/Videos

[转录自截屏.]

答案1

  • 如果您没有重新启动:您可能应该使用:lsof -a +L1 可以帮助您找出哪些已删除(rm'd)文件仍然打开了“文件句柄”(即,某些程序仍然指向它,因此文件本身还没有被删除从文件系统中删除,即使其姓氏条目已被 rm 删除)。偏移量将暗示其中最大的文件。如果您看到一个似乎符合要求的应用程序:您应该干净地杀死(不是杀死-9 pid,尝试只杀死pid)相应的应用程序,它应该释放该文件句柄,并且应该回收该文件。

  • 但是您声明您已重新启动:您可能在主目录下的某个位置隐藏了文件。您可以尝试:find /home/vincent/ -size +1G -ls查看/home/vincent目录下大于1G的文件

  • 请注意:您对*du 的调用,即du ... *只会对不以 a 开头的文件执行 du .*将由您的 shell 扩展到所有不以 a 开头的文件和目录.)。所以它不会在/home/vincent的“隐藏文件”上运行。我上面给出的 printf 应该忽略这一点(除非您对它们有特定的附加权限限制)并探索显示和隐藏的目录和文件。您还可以以 root 身份重新运行 find,方法是在其前面添加 sudo,并查看以 root 身份启动时是否会显示更多内容: sudo find /home/vincent/ -size +1G -ls

  • 最后,如果您使用最新的图形界面进行删除:您可能需要清空“垃圾桶”才能真正释放空间。 (垃圾箱可以作为“.something”目录存在于您的主目录下,解释为什么您的家仍然那么大,以及为什么您du ... *没有看到它)

答案2

使用此命令行查找文件(它搜索并打印大小大于 180GiB 的文件的名称):

$ find /home/vincent -size +180G

这可能会返回多个文件。

然后你可以删除它。它可能位于垃圾文件夹内。

答案3

空间未填满的最可能原因是您有一个打开的文件句柄。仅当没有任何东西使文件保持打开状态时,才会释放空间。因此,重新启动该文件所属的应用程序,该空间可能会变得可用。

运行lsof以查看打开的文件。有一篇关于删除未释放空间的文件的帖子

您还可以nothing在删除文件之前写入该文件。例如,> /path/to/file或注意从文件开头写入的echo "" >/path/to/file单个文件,而不是将 ( ) 附加到文件末尾。>>>

相关内容