Linux 彻底且安全地删除文件
以下两个指令的作用都是彻底且安全地删除文件(也就是“粉碎”数据),防止被数据恢复软件找回。它们的核心都使用了 shred 命令来覆盖文件原本占用的磁盘空间。
1. find src -type f -exec shred -v -n 3 -z -u {} \;
这个命令的作用是:在 src 文件夹中找出所有的普通文件,并将它们逐一彻底粉碎并删除。
find src:在名为src的目录中进行搜索。-type f:限制搜索结果,只查找“普通文件”(不包括目录、设备文件或快捷方式,因为shred只能处理文件)。-exec ... {} \;:对找到的每一个文件执行后面的指令。其中{}会被替换为当前找到的文件路径。shred:执行安全删除操作的主程序。-v(--verbose):显示详细的操作过程,你可以看到哪些文件正在被处理。-n 3(--iterations=3):用随机数据将文件内容覆盖 3 次(3 也是shred的默认次数)。-z(--zero):在最后一次覆盖时,用“全零(0x00)”进行覆盖。这可以掩盖文件曾被粉碎过的痕迹,让该区域看起来像是正常的空闲磁盘空间。-u(--remove):在所有的覆盖操作完成后,截断并删除该文件。如果不加这个参数,shred只会把文件内容打乱,但文件依然会保留在目录中。
2. shred -v -n 3 -z -u src.zip
这个命令的作用是:使用完全相同的安全级别,彻底粉碎并删除 src.zip 这个压缩包文件。
它的参数含义与第一条指令中的完全一致:
- 对
src.zip覆盖 3 次随机数据(-n 3)。 - 最后用 0 覆盖一次(
-z)。 - 显示执行过程(
-v)。 - 粉碎后将文件从系统中彻底删除(
-u)。

浙公网安备 33010602011771号