Wie überprüfe ich, was eine Datei sperrt?

11

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?

Michal M.
quelle
Haha! Du hast mich. ;)
Michal M

Antworten:

13

Wie Rabarberski sagt, lsofkann 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 mit sudo, und dass Sie der Datei, an der Sie interessiert sind, den Pfadnamen als Argument geben können, sodass der grepAufruf in dem Hinweis, auf den Rabarberski verweist, nicht erforderlich ist . Wenn ein Prozess die Datei sperrt, sollten Sie dies in der FD-Spalte in der lsofAusgabe sehen können. Einzelheiten finden Sie auf der Handbuchseite. (Wenn ich sudo lsofauf meinem Computer ausgeführt werde, werden keine gesperrten Dateien angezeigt, daher kann ich nicht garantieren, dass dies direkt auf dem Mac funktioniert. Es sudohandelt 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 rmaus der Befehlszeile entfernen .

Harald Hanche-Olsen
quelle
Ich habe gerade einen dummen Druckfehler bemerkt: Wo es heißt " sudoist doch ...", wollte lsofich erwähnen. Ich werde es nicht bearbeiten - es ist zu geringfügig, um eine Beeinträchtigung der Startseite zu rechtfertigen.
Harald Hanche-Olsen