可以用dd来擦除目录吗?


3

我在Mint安装上有一个目录,我想要擦除干净(不只是删除指针,实际上将驱动器中的信息归零)。是否可以使用dd?清除数据?例如,如果我要擦除的文件是/folder/folder1/*,我可以执行dd if=/dev/zero of=/folder/folder1 bs=1k并将该目录中的所有文件归零吗?另外,如果我有子目录,它是否会以递归方式将所有子文件夹归零?

Answers:


3

您可以使用find和dd一起递归写入文件,一次一个:

find /folder/folder1 -type f | while read line; do dd if=/dev/zero of=$line bs=1k count=1024; done

然后你可以只是rm -rf父目录:

rm -rf /folder/folder1

这绝不是一个快速的过程,但它将完成工作。当然有比使用dd更好的工具。


3

您不能使用dd文件夹,该文件夹用于分区或文件等设备。如果它是Ubuntu,你应该安装shred,这是为你想要做的设计的。

Shred仅适用于文件,因此您希望:

find /folder -type f -print0 | xargs -0 shred

您也可以shred在分区上使用。

如果你不在Ubuntu上,还有很多其他工具。shred也可用于其他发行版。

你也可以谷歌在Linux中安全删除文件,或类似的东西,找到更多可能更适合你需要的工具。


mint有不同的代码库,有些基于ubuntu / debian,这就是为什么我不太清楚你的可用包。我很确定shred可用于当前的薄荷。
johnshen64年

谢谢!值得注意的是,碎片仅适用于文件,而不适用于文件夹。我通过执行find /folder/folder1 -type f | xargs shred
ewok

为了安全起见,你想print0用作find选项并传递-0给'xargs` @ewok
slhck

在CentOS / Fedora上你需要安装coreutils
ksokol 2015年

1

我使用srm,它secure-delete在Ubuntu和Debian 的包中。sudo apt-get install secure-delete安装它,然后srm -r $directory安全地删除整个目录树。srm不会覆盖非常规文件,但它会(默认情况下)将所有文件和目录重命名为随机值,然后再取消链接。

您可以使用该-z标志让它为最后一次传递写入零并-v查看其进度。有关man srm更多信息,请参阅


0

不,您不能使用dd安全地删除目录,但您可以使用wipe

擦除重复覆盖要销毁的文件的特殊模式,使用fsync()调用和/或O_SYNC位强制磁盘访问


2
......你能详细说一下吗?
ewok
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.