尝试清空废纸篓时,文件仍在使用中——我该如何删除它?

slh*_*hck 8 trash macos

当您尝试清空 OS X 中的废纸篓时,如果应用程序中仍有打开的文件,您会收到对话框:

在此处输入图片说明

操作无法完成,因为项目“...”正在使用中。

如何找出哪个应用程序哪个进程仍在使用此文件?

slh*_*hck 13

lsof找什么保持文件打开

打开Terminal.app并使用以下命令进入垃圾箱:

cd ~/.Trash
Run Code Online (Sandbox Code Playgroud)

现在,输入以下命令:

lsof name-of-file
Run Code Online (Sandbox Code Playgroud)

例如,在上面的屏幕截图中,它会是:(lsof pdf\ 08-53-59.pdf在此处转义空格很重要)。您也可以在之后输入lsof一个空格,然后将文件从 Finder 的垃圾箱拖到终端窗口中。

在此处输入图片说明

该命令将输出如下内容:

charon:.Trash werner$ lsof pdf\ 08-53-39.pdf 
COMMAND  PID   USER   FD   TYPE DEVICE  SIZE/OFF     NODE NAME
Finder  5022 werner  txt    REG   14,2 636141715 32494023 pdf 08-53-39.pdf
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我们知道 Finder 将文件保持打开状态。对于任何其他应用程序,只需激活和退出它就很容易。对于 Finder,没有明显的“退出”按钮。

要杀死 Finder 并释放文档,只需在终端中输入以下内容:

killall Finder
Run Code Online (Sandbox Code Playgroud)

您现在应该可以清空垃圾箱了。

其他技巧

如果上述方法没有成功,您可以尝试以下一些非常基本的技巧来清空垃圾箱:

  • 从您的用户注销,然后重新登录
  • 重新启动Mac,再次登录

  • 请注意,如果该文件正在被系统进程(而不是用户程序)使用,则您需要使用 `sudo lsof name-of-file`(然后输入您的密码以作为管理员进行身份验证)来查看正在使用的内容文件。如果它是使用该文件的系统进程,那么重启而不是尝试退出程序通常是最安全的(这并不总是安全的......) (2认同)