題 嘗試清空廢紙簍時仍在使用文件 - 如何刪除它?


當您嘗試在OS X中清空“廢紙簍”時,如果文件仍在應用程序中打開,則會收到以下對話框:

enter image description here

由於項目“...”正在使用,因此無法完成操作。

我怎麼才能找到答案 哪個應用程序 要么 哪個過程 還在用這個文件?


7
2017-11-30 09:32


起源




答案:


運用 lsof 找到保持文件打開的內容

打開 Terminal.app 並使用以下命令進入垃圾箱:

cd ~/.Trash

現在,輸入以下命令:

lsof name-of-file

例如,在上面的屏幕截圖中,它將是: lsof pdf\ 08-53-59.pdf (這對逃離空間很重要)。你也可以進入 lsof 之後使用空格,然後將文件從Finder的“廢紙簍”拖動到“終端”窗口中。

enter image description here

該命令將輸出如下內容:

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

在這種情況下,我們知道Finder保持文件打開。對於任何其他應用程序,只需激活並退出它就很容易。在Finder的情況下,沒有明顯的“退出”按鈕。

要終止Finder並釋放文檔,只需在終端中輸入以下內容:

killall Finder

您現在應該可以清空垃圾箱了。

其他技巧

如果上述方法不成功,可以嘗試清空垃圾箱,這是一些非常基本的技巧:

  • 從您的用戶註銷,然後重新登錄
  • 重新啟動Mac,再次登錄

13
2017-11-30 09:33



請注意,如果系統進程(而非用戶程序)正在使用該文件,則需要使用該文件 sudo lsof name-of-file (然後輸入您的密碼以作為管理員進行身份驗證)以查看使用該文件的內容。如果它是使用該文件的系統進程,則通常最安全的是重新啟動而不是嘗試退出程序(這並不總是安全的......) - Gordon Davisson


lsof 即使用sudo也沒有給我任何回報。但很簡單 rm 做了伎倆。

cd ~/.Trash

在我的情況下它是應用程序所以:

rm -rf some.app

2
2017-12-18 08:27



它的 lsof 不 lsoft。而+1,因為Mac OS當然是基於Unix的,我有點驚訝地看到正在使用的文件被操作系統鎖定,但是基於Unix的好可靠性 rm 肯定會做的伎倆! :) - jmort253