对于bash脚本循环

问题描述:

可以说,我们使用标准的bash术语来写一个for循环,其循环SRM到您的驱动器上的安全擦除一个项目。对于bash脚本循环

现在让我们说,我们将它设置为重复10次,它完成一次迭代后,怎么能仍对文件进行操作?该文件不应该存在,那么它如何擦除它?不是特定于srm的问题,任何事情都可以运行。甚至当文件不再可用时,甚至像mv一样。

+0

你可以把它更清楚,你想做什么?你说你想在for循环中运行mv(例子)。那么您想要再次对移动的文件进行操作? – ghostdog74 2010-02-02 01:23:21

它会通过循环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。这真的不够吗?