Linux 系统并没有像 Windows 那样明显的回收站机制,但可以通过一些方法实现类似的功能。
Linux 删除文件的基本原理
- 索引节点(inode):Linux 文件系统中的每个文件都有一个对应的索引节点,存储了文件的元数据,如文件大小、权限、所有者、时间戳和数据块位置等。
- 链接数(i_nlink):表示有多少个硬链接指向这个文件的 inode。
- 引用数(i_count):表示当前有多少个进程正在引用该文件的 inode。
当执行 rm
命令删除文件时,Linux 内核会执行以下步骤:
- 减少链接数:执行
rm
命令会减少文件的链接数(i_nlink)。如果链接数减少到 0,表示没有其他文件指向它。
- 检查引用数:如果链接数为 0,但引用数(i_count)不为 0,说明文件仍然被某些进程打开并使用。在这种情况下,文件的数据和 inode 不会立即被删除,而是继续保留,直到所有引用该文件的进程关闭该文件(即 i_count 减少到 0)。
- 释放资源:只有当文件的链接数(i_nlink)和引用数(i_count)都为 0 时,文件系统才会真正释放该文件的 inode 和数据块,将其标记为可用,以便将来存储新的数据。
实现回收站机制的方法
- 使用
mv
命令:将文件移动到回收站目录,而不是直接删除。
- 使用
ur
命令:从回收站恢复文件。
- 使用
rl
命令:列出回收站中的所有文件和目录。
- 使用
cleartrash
命令:清空回收站。
通过上述方法,Linux 用户可以为自己的系统建立一个有效的回收站系统,以减少因误操作而带来的文件丢失风险,并为用户提供一个恢复错误删除文件的机会。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>