%20%E7%A7%BB%E8%87%B3%E5%8F%A6%E4%B8%80%E5%80%8B%E6%AA%94%E6%A1%88%E7%B3%BB%E7%B5%B1%20(NTFS)%20%E6%99%82%E5%88%AA%E9%99%A4%E8%A9%B2%E6%96%87%E4%BB%B6%EF%BC%8C%E6%9C%83%E7%99%BC%E7%94%9F%E4%BB%80%E9%BA%BC%E6%83%85%E6%B3%81%EF%BC%9F.png)
從昨天起這件事一直困擾著我。我使用 GNOME Files (Nautilus) 將視訊檔案從「下載」資料夾移至 NTFS 磁碟機。現在,當我剪下並貼上該檔案時,它立即出現在目標位置(單獨的 NTFS 檔案系統,在同一硬碟上使用 ntfs-3g)。我知道當您將文件從一個文件系統移動到另一個文件系統時,它實際上會複製然後刪除該文件(如果我錯了,請糾正我)但我急忙從源中“移動+刪除”該文件,稍後發現檔案管理器是即使我從來源中刪除了該檔案並且它消失了,仍然將檔案移至 NTFS 檔案系統。當移動條達到 100% 後,它給了我一個錯誤。但我檢查了目標目的地,檔案仍然移動到目的地並且播放正常。
那麼,這裡究竟發生了什麼事? Linux 上的檔案操作是否會隨後進行,以免中斷行動操作?或者移動到我的目標目的地的檔案會損壞?或者是由於檔案移動時的最後一次複製操作而導致的錯誤,因為移動操作無論如何都會刪除該檔案?
答案1
刪除檔案不會清除其資料(內容) - 它只會刪除表明該檔案存在的元數據,並將相應的磁碟空間標記為「可供以後使用」。
但更重要的是,作業系統將保持只要需要,元資料就會存在。即使您從其目錄(或從所有目錄,如果有多個硬鏈接)取消文件的鏈接,只要至少有一個進程保持該文件打開,操作系統就不會刪除實際文件。因此,在其餘的複製操作期間,該文件仍然存在 - 只是無名(但仍然佔用其空間)。
我做過說「複製操作」是因為電腦無法在磁碟之間物理移動資料 - 首先將檔案複製到目的地,然後原始文件被刪除。這實際上就是您收到錯誤訊息的原因:您的檔案管理器使用兩個單獨的操作(複製和刪除);複製成功,但刪除失敗(因為你有已經刪掉了)。
答案2
在 Linux 上,大多數情況下您可以刪除開啟的檔案。這將使該檔案從目錄清單中消失。然而,文件佔用的空間只有在文件不再使用後才會被釋放。
您的情況失敗的只是移動操作的最後一步:刪除來源檔案/目錄。