📜  ubuntu 垃圾桶不会清空 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:05:41.469000             🧑  作者: Mango

Ubuntu垃圾桶不会清空 - Shell-Bash

如果你是一位Ubuntu用户,你有可能会遇到这样的问题:当你将文件或文件夹拖到垃圾桶并右键点击 "清空垃圾桶" 时,垃圾桶中的文件并没有被清空。这可能是因为垃圾桶中的某个文件正在被占用,导致无法删除。为了解决这个问题,你可以使用Shell-Bash语言进行操作。

1. 使用lsof命令查询被占用文件

打开终端,输入以下命令:

sudo lsof | grep Trash

这会列出正在使用垃圾桶的文件。你应该能够看到一些类似于这样的输出:

COMMAND  PID  USER   FD   TYPE DEVICE SIZE/OFF   NODE NAME
nautilus 1234 user  175u   REG   0,16     4096 184105 /home/user/.local/share/Trash/files/file.txt

其中 "PID" 列是进程ID(Process ID),"COMMAND" 列是进程名称,"USER" 列是进程所属用户,"FD" 列是进程使用文件的文件描述符,"TYPE" 表示文件类型,"NAME" 是文件名。

在这个例子中, "nautilus" 是正在使用垃圾桶的进程, "file.txt" 是被占用的文件名。如果你在这个文件中打开了一个文本编辑器或一个图片查看器,就会导致无法删除。

2. 关闭占用文件的进程

如果你找到了正在使用垃圾桶的进程,你就可以杀掉该进程,以关闭文件。

sudo kill -9 <PID>

在上面的命令中, "" 应该替换为 "lsof" 命令输出中 "PID" 列的值。在上面的例子中,这应该是 "1234"。

3. 清空垃圾桶

一旦你关闭了正在使用垃圾桶的进程,你就可以清空垃圾桶了。最简单的方法是使用以下命令:

rm -rf ~/.local/share/Trash/*

这个命令将直接删除垃圾桶中所有的文件和文件夹。

总结

在Ubuntu中,当你无法清空垃圾桶时,可能是某个文件正在被占用。你可以使用Shell-Bash语言来查找并关闭占用文件的进程,然后再清空垃圾桶。以上给出的方法可以解决这个问题。