可以說,我們使用標準的bash術語來寫一個for循環,其循環SRM到您的驅動器上的安全擦除一個項目。對於bash腳本循環
現在讓我們說,我們將它設置爲重複10次,它完成一次迭代後,怎麼能仍對文件進行操作?該文件不應該存在,那麼它如何擦除它?不是特定於srm的問題,任何事情都可以運行。甚至當文件不再可用時,甚至像mv一樣。
可以說,我們使用標準的bash術語來寫一個for循環,其循環SRM到您的驅動器上的安全擦除一個項目。對於bash腳本循環
現在讓我們說,我們將它設置爲重複10次,它完成一次迭代後,怎麼能仍對文件進行操作?該文件不應該存在,那麼它如何擦除它?不是特定於srm的問題,任何事情都可以運行。甚至當文件不再可用時,甚至像mv一樣。
它會通過循環10次運行,但除了在第一次迭代時,您執行的命令都會失敗(返回-1)。該命令還會寫出它通常寫出的任何錯誤消息(stdout,stderr或文件)。
#!/bin/bash
for i in {1..5}
do
rm something
done
現在,假設有一個名爲something
文件,您可以:
rm: something: No such file or directory
rm: something: No such file or directory
rm: something: No such file or directory
rm: something: No such file or directory
注意,這種情況發生的4倍,而不是5,因爲是第一次,rm
運行成功。
SRM完成循環給你,然後刪除驅動器,也沒有必要,或者你從慶典想要的東西的能力。你將不得不用C/C++編寫一些使用某些操作系統特定的API直接與文件系統交談的東西。
矯枉過正。只需使用shred --remove <file>
;這是十幾倍更容易。
如果你想擦拭你的整個驅動器,已經非常系統地證明沒有什麼東西可以讓你的驅動器比dd
更有效,並且可以用零寫驅動器。
你不能。一旦srm返回,該文件就消失了。
而是然後寫一個循環,你會想的參數調整到SRM返回前,多次覆蓋數據。
按照Wikipedia writeup on srm,默認模式爲35 pass Gutmann。這真的不夠嗎?
你可以把它更清楚,你想做什麼?你說你想在for循環中運行mv(例子)。那麼您想要再次對移動的文件進行操作? – ghostdog74 2010-02-02 01:23:21