我注意到我实际上可以 Shift-Delete(即不会进入垃圾箱)当前正在播放的视频,并且它仍然会继续播放,即使在nautilus
or ls
(终端)中没有对它的命名引用。
播放器播放完视频后,磁盘空间是否正常释放?
我认为这是正常行为,但这对我来说肯定是一种新体验(因为这在 Windows 中根本不可能)。
我注意到我实际上可以 Shift-Delete(即不会进入垃圾箱)当前正在播放的视频,并且它仍然会继续播放,即使在nautilus
or ls
(终端)中没有对它的命名引用。
播放器播放完视频后,磁盘空间是否正常释放?
我认为这是正常行为,但这对我来说肯定是一种新体验(因为这在 Windows 中根本不可能)。
尽管您已将其删除,但该文件仍在使用中,因为您已在播放器中打开它。关闭媒体播放器后,它将释放文件数据的句柄,因此将被删除。
lsof
您可以使用列出打开文件的命令来验证这一点。如果你运行 lsof,你的电影文件应该被列为正在被播放器打开,但是它旁边会有“DEL”,这意味着它已经被删除了,即使它仍然是打开的。这实际上都是一件有用的事情,这意味着您实际上可以恢复已删除的打开文件,尽管这可能最好留给另一个问题 :)
它的出现是因为(据我了解)文件由数据本身和文件的句柄(文件系统中的位置)组成。通常您只有一个文件句柄,但您可以使用该
ln
命令创建其他文件以创建硬链接。这会创建看起来与您的文件相同的副本,但实际上只是添加另一个句柄 - 因此您没有使用两倍的磁盘空间。您可以通过查看两个文件的 inode 来检查这一点 - 这会告诉您数据的实际位置。因此,例如在终端窗口中:
ln existing_movie.avi movie_hardlink.avi
ls -i
ls 的 -i 参数显示文件的 inode 信息——它们应该是相同的。
当您删除其中一个文件时,数据将保留,因为另一个仍然保留指向 inode 的句柄。删除第二个文件后,inode 没有剩余的句柄/引用,因此被删除/标记为未使用空间。这与播放器打开电影的情况直接相似,只是这里的第二个句柄位于正在运行的程序中,而不是文件系统中的第二个文件。
阅读http://linuxgazette.net/105/pitcher.html,您将了解原因(并了解硬链接和软链接之间的区别)