shred

17 Mar 2025 | 阅读 2 分钟

shred 命令允许我们安全地删除文件,使任何人很难恢复该文件。

用 rm 命令擦除文件只会擦除文件系统条目并保持文件内容完整。使用某些软件恢复已删除文件内容非常容易。

为防止数据恢复,shred 通过最大程度地销毁数据来多次**覆盖**数据。

Shred 可用于文件以及硬盘分区等设备。默认情况下,shred 会用不同的模式覆盖文件三次,但此数字可以更改。

在正常删除文件时,该部分只是被标记为可用于另一个文件,但该文件的数据仍然存在。这些数据可以通过一些高级软件检索。

当您想永久删除包含敏感数据的文件时,此命令非常有用。删除这些类型的文件,rm 命令不足以胜任。


不带参数的 Shred 命令

语法

示例

shred abc.txt

Linux Shred1

请看上面的快照,文件 abc.txt 已创建。由于它包含机密数据,因此需要安全删除。

现在,对上述文件执行 shred 命令后,它会显示以下输出。

Linux Shred2

请看上面的快照,文件数据已被粉碎,但文件仍然存在。


删除文件

不带任何参数使用 shred 命令只会覆盖文件内容,但文件仍保留在文件系统中。

要从文件系统中删除文件,请使用选项 u。

语法

示例

shred -u abc.txt

Linux Shred3

请看上面的快照,文件已从文件系统中删除。


关于 shred 过程的详细信息

如果您想查看 shred 对您的文件做了什么,请使用选项 v。

这里,我们还使用 u 选项来删除文件。

语法

示例

shred -u -v abc.txt

Linux Shred4

请看上面的快照,文件默认被覆盖了三次,并重命名了七次。


更改覆盖次数

您还可以使用选项 n 将默认的覆盖次数(默认为 3)更改为您想要的任何数字。

语法

示例

shred -u -v -n 9 abc.txt

Linux Shred5

请看上面的快照,文件已被覆盖九次。


在驱动器上使用 shred

shred 命令也用于覆盖驱动器的数据。驱动器包含大量数据,因此粉碎这些数据将需要大量时间。

语法

示例

shred /dev/sda1

下一个主题Linux mount