如何在 Linux 中使用 shred 安全删除文件如何在 Linux 中使用 shred 安全删除文件如何在 Linux 中使用 shred 安全删除文件如何在 Linux 中使用 shred 安全删除文件
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

如何在 Linux 中使用 shred 安全删除文件

以数字方式删除文件需要与处理纸质文档时使用的相同协议。

当您删除计算机上的文件时,系统会通过删除对该文件的引用来清除存储中的块。该文件不会突然消失,并且仍然可以使用高级软件访问,这可能不是您想要的。

任何拥有文件恢复工具的人都可以从您的存储中提取这些已删除的文件并查看其内容。但如果您不希望这种情况发生怎么办?在 Linux 上删除文件以使任何人都无法恢复它们的最佳方法是什么?

这时切碎实用程序就发挥作用了。本文将详细讨论 shred 命令、其局限性以及如何使用它在 Linux 上安全地删除文件。

什么是切碎以及它是如何工作的?

Shred 是一个命令行实用程序,它使用随机数据多次覆盖文件内容以使其不可恢复。它还允许您在覆盖其数据后删除该文件。

“为什么它会覆盖文件内容?”,您可能会问。让我们通过一个例子来理解它。考虑一下您需要隐藏或“删除”写在一张纸上的内容。当然,您可以将其揉皱并扔进垃圾桶。但任何人都可以拿起皱巴巴的纸团,将其拉直,然后阅读其中的内容。

另一方面,碎纸机将纸张切成细条或碎片,使任何人几乎不可能恢复该过程并查看内容。

这正是 shred 命令在 Linux 中的工作原理。它会用零字符串多次覆盖文件的内容,使任何人都无法查看原始内容。之后,如果需要,它可以安全地从系统存储中删除该文件。

何时不使用碎片

请注意,粉碎并不是在所有情况下都有效。根据 shred 手册页,该实用程序在某些文件系统上使用时无效。这些是:

  • 日志结构或日志文件系统(ext3、XFS 和 JFS)。

  • 基于 RAID 的文件系统。

  • 存储快照的文件系统。

  • 存储缓存的文件系统。

  • 压缩文件系统。

shred 手册页还指出,该命令仅在 journal 模式下不适用于 ext3。但是,在 data=writeback 和 data=ordered 模式下,该工具的工作方式非常出色。

此外,您不应该在 SSD 上使用粉碎实用程序,因为额外的擦除和写入过程可能会损坏您的存储。

如何使用 shred 命令

使用粉碎,您可以选择覆盖并删除文件,也可以直接覆盖文件而不删除它。

基本语法

该命令的基本语法是:

shred options filename

...其中 选项 是用于调用命令方法的各种标志,文件名 是要处理的文件的绝对或相对路径。

永久删除文件

要使用 shred 永久删除文件,请在默认命令中使用 -uvz 标志。

  • u:从存储中删除文件

  • v:以详细模式显示输出

  • z:用零覆盖文件

shred -uvz textfile.txt

默认情况下,shred 会覆盖文件四次。在前三遍中,它用随机数据覆盖文件内容。在最后一遍中,由于 -z 标志,它用零覆盖数据。 Shred 还会覆盖 inode 以删除与该文件关联的任何元数据。

输出 :

用零覆盖文件

要简单地用零覆盖文件而不将其从系统中删除,请从上一个命令中删除 -u 标志。

shred -vz textfile.txt

输出 :

设置覆盖次数

如上所述,shred 会覆盖文件中的数据四次。如果要指定特定的覆盖次数,可以使用 -n 或 --iterations 标志来执行此操作。

但请注意,切碎始终会在您指定的数量上再添加一次。因此,要覆盖文件六次,请在命令中传递数字 5:

shred -uvz -n 5 textfile.txt
shred -uvz --iterations 5 textfile.txt

将文件覆盖三遍就足以确保没有人可以恢复数据。任何超出这个范围的事情只会花费更多的时间,而不会产生任何显着的效果。

使用 shred 删除多个文件

要删除多个文件,只需传递以空格字符分隔的文件名称即可。

shred -uvz file1.txt file2.txt file3.txt

如果您的目录包含类似类型的文件,则可以使用通配符(例如星号 (*))来删除或覆盖文件。例如,要删除当前工作目录中的所有 TXT 文件:

shred -uvz *.txt

粉碎文件的一部分

使用 shred,您还可以通过粉碎文件的起始字节来呈现损坏的文件。例如,您可以覆盖或删除文件的起始 1KB。为此,您需要 -s 或 --size 标志。

虽然即使部分粉碎后您也可以显示文本文件,但包文件或可执行文件在发出命令后将无法运行。

shred -vz -s 1K textfile.txt
shred -vz --size 1K textfile.txt

原始文本文件:

执行命令:

发出命令后的文本文件:

Shred 在命令中接受以下三个后缀:

  • K:千字节

  • M:兆字节

  • G:千兆字节

获取命令行帮助

虽然 shred 命令没有很多需要记住的方法和选项,但有时您可能需要访问命令手册页以供参考。

--help 标志显示 shred 手册页:

shred --help

输出 :

在 Linux 上永久删除文件

Linux 为您提供了一种从存储中删除文件和文件夹的简单方法。但这并不完全安全。使用数据恢复软件只需单击几下即可访问这些已删除的文件。

如果您使用公共计算机并且不希望其他人查看您的文件和文件夹,您可以选择隐藏它们。这是防止他人在 Linux 上查看您的个人数据的更好方法。

©2015-2025 艾丽卡 support@alaica.com