Linux回收站

在Ubuntu或其他Linux桌面环境中,用户常依赖图形界面的“清空回收站”功能来永久删除文件。然而,许多用户发现操作后磁盘空间并未释放,甚至能通过数据恢复工具找回文件。

这一现象背后,是Linux回收站机制与文件存储原理的共同作用。本文将深入剖析其工作原理及解决方案。

Linux回收站的核心机制

  1. 回收站的物理结构​
    Linux回收站并非一个独立分区,而是一个隐藏目录:
  • 路径:~/.local/share/Trash/(用户级)或系统级/.Trash-[UID]/
  • 子目录:
    • files/:存放实际被删除的文件副本;
    • info/:存储元数据文件(.trashinfo),记录文件的原始路径、删除时间等信息;
    • expunged/:处理权限冲突文件​​或​​立即删除操作​​的临时中转区,文件进入后即被永久清除。
  1. “删除”的本质:文件移动而非擦除
    当用户点击“删除”时:

    • 文件从原始位置移动到files/目录;
    • 在info/目录生成对应的.trashinfo元数据文件;
    • 文件仍占用磁盘空间,但路径被隐藏。
  2. “清空回收站”的操作逻辑
    执行清空操作时:

    • 系统删除files/目录下的文件;
    • 同步删除info/目录中的元数据文件;
    • 但文件内容可能未被物理覆盖,仅被标记为“可被新数据占用”。
    • 当删除的​​文件夹内含其他用户创建的文件或用户使用​​Shift+Delete永久删除​​或​​权限不足导致无法移入回收站​​时,冲突文件被移入expunged/。

跨分区删除的特殊性​

​​问题​​:在非Home分区(如外置硬盘)删除文件时:

  • 文件进入​​该分区的.Trash-1000目录​​而非用户主目录回收站。
  • 图形界面回收站(如Nautilus)​​默认仅显示Home回收站内容​​,可能导致用户误判文件已消失。

手动清理expunged目录

若需立即释放空间(如磁盘已满),可手动清理:

1
2
3
4
5
# 1. 检查expunged目录大小
du -sh ~/.local/share/Trash/expunged

# 2. 安全删除内容(需管理员权限)
sudo rm -rf ~/.local/share/Trash/expunged/*

操作前确保无重要文件,此操作不可逆!

实战

检查存储空间大小:
系统监视器

切换工作目录到home/[user]目录下:

1
cd /home/[user]/

检查Trash文件大小:

1
2
3
4
5
$ sudo  du -h -d 1 ./.local/share/Trash/
4.0K ./.local/share/Trash/files
12K ./.local/share/Trash/info
200G ./.local/share/Trash/expunged
200G ./.local/share/Trash/

可以发现,expunged中的文件占很大空间,对其进行手动删除:

1
sudo rm -rf ~/.local/share/Trash/expunged/*

重新检查Trash文件大小:

1
2
3
4
5
$ sudo  du -h -d 1 ./.local/share/Trash/
4.0K ./.local/share/Trash/files
12K ./.local/share/Trash/info
4.0K ./.local/share/Trash/expunged
24K ./.local/share/Trash/

检查存储空间大小:
系统监视器1

作者

LiXintao

发布于

2025-08-04

更新于

2025-08-14

许可协议

评论