我按下 Shift-Delete 键后可以继续播放视频。关闭播放器后磁盘空间会释放吗?

我按下 Shift-Delete 键后可以继续播放视频。关闭播放器后磁盘空间会释放吗?

nautilus我注意到我实际上可以按 Shift-Delete(即不进入垃圾箱)删除当前正在播放的视频,并且它仍会继续播放,即使在或ls(终端) 中没有对它的命名引用。

播放器播放完视频后磁盘空间是否正常释放?

我认为这是正常现象,但对我来说无疑是一种全新的体验(因为在 Windows 中这根本不可能实现)。

答案1

虽然您已将其删除,但该文件仍在使用中,因为您在播放器中打开了它。一旦您关闭媒体播放器,它将释放对文件数据的句柄,因此将被删除。

您可以使用lsof列出打开文件的命令来验证这一点。如果您运行 lsof,您的电影文件应该被列为由播放器打开,但它旁边会有“DEL”,这意味着即使它仍处于打开状态,它也已被删除。

这实际上都是有用的,意味着你实际上可以恢复已删除的打开的文件,尽管这最好留给另一个问题:)

这是因为(据我所知)文件由数据本身和文件句柄(文件系统中的位置)组成。通常,一个文件只有一个句柄,但您可以使用ln创建硬链接的命令创建其他句柄。这会创建看似与文件相同的副本,但实际上只是添加了另一个句柄 - 因此您没有使用两倍的磁盘空间。您可以通过查看两个文件的 inode 来检查这一点 - 这会告诉您数据的实际位置。

例如在终端窗口中:

ln existing_movie.avi movie_hardlink.avi

ls -i

ls 的 -i 参数显示文件的 inode 信息 - 它们应该是相同的。

当您删除其中一个文件时,数据将保留,因为另一个文件仍保留了 inode 的句柄。一旦您删除第二个文件,inode 就没有剩余的句柄/引用,因此会被删除/标记为未使用空间。这与播放器打开电影的情况非常相似,只是这里的第二个句柄位于正在运行的程序中,而不是文件系统中的第二个文件。

答案2

http://linuxgazette.net/105/pitcher.html,你就会明白为什么(并了解硬链接和软链接之间的区别)

相关内容