Deleted-Files

覆蓋文件但保留它是什麼意思?

  • June 27, 2018

wipe工具有選項-k Keep files, i.e. do not remove() them after overwriting

這意味著不刪除被……好吧……擦除的文件是什麼意思?

手冊頁是這樣描述的-k

保留文件:文件被覆蓋後不要取消連結。如果您想擦除設備,同時保留設備特殊文件,這很有用。這意味著-F

的主要案例-k

wipe -k /dev/sda

這將覆蓋驅動器的所有內容,而不刪除設備節點。

如果您在“標準”文件上使用它,它會擦除文件的內容,但不保留文件本身(它的名稱,以及它在父目錄中的存在)。

類似wipeshred旨在覆蓋文件數據的程序使用與任何其他程序相同的介面工作。他們使用通常的 OS 函式將例如零寫入文件,並希望文件系統將新數據儲存在與舊數據相同的磁碟塊上,從而覆蓋舊數據。除了通過unlink().

因此,在文件被覆蓋後保留文件就是這樣,文件仍然存在,不會被刪除。只是內容變了。

帶有 的範例shred,預設情況下不會取消連結文件:

$ cat somefile 
some secret data
$ shred somefile 
$ ls -l somefile 
-rw-r--r-- 1 username username 4096 Jun 27 19:28 somefile
$ od -tx1 somefile |head -2
0000000 2b d7 fe 76 a0 4c 79 4e b6 bc 26 7d 6c b0 4e ed
0000020 81 a2 bf 3f ce af ce f0 07 2b fe 80 50 39 e3 c9

之後shred,文件仍然存在,充滿隨機字節。該文件不會被截斷或刪除。它的大小實際上已經增加,因為shred在覆蓋時會向上舍入文件大小(以完全覆蓋最後一個數據塊)。

當然我們可以用rm somefile.

請注意,覆蓋所依賴的假設甚至可能不適用於所有文件系統。至少文件數據的日誌記錄(可能在 ext4 上)和寫時復製文件系統 (btrfs) 將通過本質上儲存數據的多個副本而使覆蓋無效。

引用自:https://unix.stackexchange.com/questions/452259