Mir ist aufgefallen, dass Mail.app manchmal Dateien sperrt. Die Sperre selbst ermöglicht das Verschieben von Dateien in den Papierkorb, das Leeren des Papierkorbs jedoch nicht. (Vielleicht sollte Trash in diesem Fall in Thrash umbenannt werden.)
Gibt es eine Möglichkeit (über einen Terminalbefehl oder eine App) zu sehen, welche App die Datei sperrt und / oder die Datei entsperrt, ohne die App zu beenden?
Antworten:
Wie Rabarberski sagt,
lsof
kann verwendet werden, um jeden Prozess zu finden, bei dem die Datei geöffnet ist. Beachten Sie, dass Sie das Programm als root ausführen müssen, dh mitsudo
, und dass Sie der Datei, an der Sie interessiert sind, den Pfadnamen als Argument geben können, sodass dergrep
Aufruf in dem Hinweis, auf den Rabarberski verweist, nicht erforderlich ist . Wenn ein Prozess die Datei sperrt, sollten Sie dies in der FD-Spalte in derlsof
Ausgabe sehen können. Einzelheiten finden Sie auf der Handbuchseite. (Wenn ichsudo lsof
auf meinem Computer ausgeführt werde, werden keine gesperrten Dateien angezeigt, daher kann ich nicht garantieren, dass dies direkt auf dem Mac funktioniert. Essudo
handelt sich schließlich um ein generisches Unix-Programm, und möglicherweise funktionieren einige Funktionen unter OSX nicht.)Sie können eine Datei nicht entsperren, ohne den Prozess zu beenden, der die Sperre hält. Sie können es jedoch mit
rm
aus der Befehlszeile entfernen .quelle
sudo
ist doch ...", wolltelsof
ich erwähnen. Ich werde es nicht bearbeiten - es ist zu geringfügig, um eine Beeinträchtigung der Startseite zu rechtfertigen.Wie andere betonten, macht lsof den Trick. Um die Aufgabe noch einfacher zu machen, schlage ich die (kostenlose) App "Was hält mich" vor (URL: http://www.hamsoftengineering.com/products/wkm/wkm.html ), die im Grunde ein Frontend für lsof ist und eine hat wenige zeitsparende Optionen.
quelle
Anscheinend kann dazu der
lsof
Terminalbefehl ("Liste der geöffneten Dateien") verwendet werden: http://hints.macworld.com/article.php?story=20040121001144687quelle