dd 可以用来清除目录吗?

dd 可以用来清除目录吗?

我在 Mint 安装中有一个目录,我想将其清除干净(不只是删除指针,而是真正将驱动器上的信息清零)。是否可以使用 清除数据dd?例如,如果我想删除的文件位于/folder/folder1/*,我可以执行dd if=/dev/zero of=/folder/folder1 bs=1k并让该命令将该目录中的所有文件清零吗?此外,如果我有子目录,它是否也可以递归地将所有子文件夹清零?

答案1

您可以一起使用 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 更好的工具可以完成这项工作。

答案2

您不能将其dd用于文件夹,它用于分区或文件等设备。如果是 Ubuntu,则应安装shred,它是为您想要执行的操作而设计的。

Shred 仅对文件起作用,因此您需要执行以下操作:

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

shred也可以在分区上使用。

如果您不是使用 Ubuntu,还有许多其他工具,shred也可能适用于其他发行版。

您也可以通过 Google 搜索“在 Linux 中安全删除文件”或类似内容,以找到更多可能更适合您需求的工具。

答案3

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

反复擦除要销毁的文件,并使用 fsync() 调用和/或 O_SYNC 位强制访问磁盘

答案4

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

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

相关内容