/ OS X

Dateizugriffe erkennen und beenden

Früher oder später trifft es jeden. Wenn man versucht eine Datei zu löschen, verweigert OS X dies, weil auf die Datei noch zugegriffen wird.

Man ist sich aber ziemlich sicher, dass alle Programme geschlossen sind.

Dieses Verhalten ist mir besonders oft im Zusammenhang mit Video Dateien aufgefallen, vorallem mkv's.
Hier scheint sich das eine oder andere mal eine Decoder Library aufzuhängen oder zumindest nicht mit dem Programm was die Datei aufgerufen hat auch geschlossen zu werden.

Dieses Problem lässt sich in der Regel dadurch lösen, dass man sich ab- und wieder anmeldet oder bei besonders hartnäckigen Fällen, durch einen Neustart.
Aber wer will das? Ich zumindest nicht. Doch zum Glück gibt uns OS X (und auch andere Linux/Unix Systeme) ein Terminal Programm zur Hand, wodurch man dieses Problem lösen kann.

Mit lsof (List open files) kann man sich alle derzeit in Zugriff befindlichen Dateien und Sockets sowie die zugreifenden Programme anzeigen lassen.

lsof /pfad/zur/datei

oder

lsof | grep $Dateiname

In der ersten Spalte sieht man dann den Namen des zugreifenden Programms und in der zweiten Spalte die Prozess ID (PID). Gibt man nun

sudo kill $PID

ein, sollte der Zugriff auf die Datei beendet werden und sie ist somit löschbar.