先确认文件是否在回收站:按Ctrl+H显示隐藏文件,检查~/.local/share/Trash/files/路径;若存在则尚未释放空间,需清空回收站;若不存在且曾用rm或Shift+Delete删除,则数据块仍存于磁盘,应立即用shred等命令安全覆写。

确认文件是否已进入回收站或已被直接删除
先打开文件管理器,按 Ctrl+H 显示隐藏文件,进入 ~/.local/share/Trash/files/ 查看目标文件是否还在。如果存在,说明它只是被“删除到回收站”,尚未真正释放空间;此时直接清空回收站仍不安全,必须跳过图形界面操作,改用底层粉碎命令。
如果该路径下已无文件,且你曾执行过 rm、rm -f 或 Shift+Delete,则文件索引已解除,但数据块大概率仍存于磁盘——这正是需要立即粉碎的窗口期。
使用 shred 命令对单个文件进行多次覆写
打开终端,切换到目标文件所在目录,执行:
shred -v -n 3 -z 文件名
其中 -v 显示进度,-n 3 表示覆写3遍(满足中国《GB/T 25069-2022 信息安全技术 术语》中对敏感数据擦除的基本要求),-z 在最后加一次零填充,掩盖覆写痕迹。该命令会直接修改原文件内容,【操作不可逆,执行前务必确认文件路径完全正确】。
注意:shred 对 ext4 文件系统上的常规文件有效,但对以下情况无效:符号链接、硬链接指向的同一 inode、位于 SSD 或启用了 TRIM 的设备、文件系统启用了写时复制(如 Btrfs 默认行为)。若不确定,优先使用下一方法。
对整个文件夹或高敏数据区执行安全擦除
方法一:用 sfill 清空当前分区的可用空间
当机密文件已被删除(例如已清空回收站),但你还想确保其残留数据块被覆盖,需擦除整个分区的“空闲区域”。先卸载目标分区(如非系统盘可直接卸载),再挂载为只读并运行:
sfill -l -z /挂载点路径
-l 表示跳过大文件(加快速度),-z 末尾填零。此操作将所有当前标记为“空闲”的块覆写一遍,能有效覆盖刚删除文件遗留的数据。若目标是系统盘(/),【必须在 Live USB 环境下操作,否则无法卸载根分区】。
方法二:用 wipefs 彻底清除文件系统元数据(仅限报废介质)
适用于即将淘汰的U盘、移动硬盘等外置设备。插入后先用 lsblk 确认设备名(如 /dev/sdb),然后执行:
wipefs -a /dev/sdb
该命令会抹除设备头部所有文件系统签名,使恢复工具无法识别分区结构。注意:这不是覆写数据,而是让数据“不可见”;若设备后续仍要使用,需重新分区格式化。
针对 SSD 的特殊处理:禁用 TRIM 并使用 blkdiscard(谨慎)
银河麒麟默认启用 TRIM,SSD 在收到删除通知后可能立即物理擦除数据块——这对日常使用是优化,但对“粉碎”反而不利:你无法控制它何时执行、是否执行完整。因此,若需对 SSD 上的机密文件做可控粉碎,第一步是临时关闭 TRIM:
sudo systemctl mask fstrim.timer
然后使用 blkdiscard 手动触发全盘块级丢弃(仅限支持 DISCARD 的 NVMe/SATA SSD):
sudo blkdiscard -s /dev/nvme0n1p1
-s 表示“安全模式”,强制等待硬件完成物理擦除。此操作耗时较长,且【一旦执行,分区上所有已删除数据将不可逆地从闪存颗粒中清除,包括你未意识到的其他敏感缓存】。仅建议在设备即将离线移交或销毁前使用。

















