Thread Sicheres Löschen (25 answers)
Opened by bianca at 2013-04-07 09:48

topeg
 2013-04-07 12:51
#166922 #166922
User since
2006-07-10
2611 Artikel
BenutzerIn

user image
Wenn du wissen willst welche Dateien geöffnet sind musst du Tools wie lsof nutzen oder dich durch /proc/ arbeiten.

Willst du "lsof" nicht nutzen kannst du das auch so machen:
Code (perl): (dl )
my %opened=map{ $_ => 1 }grep{ !/^\w+:\[?\w+\]?$/ }map{ readlink }glob( "/proc/*/fd/*" );
Das kann aber nur Dateien finden auf die der Prozess zugriff hat.

Und ja das ist ein Linux/Unix Ding.
Linux ist ein unixartiges System. Diese sind für den Multiuserbetrieb ausgelegt. Aus dem Grund ist es möglich geöffnete Dateien zu löschen. Wenn das nicht möglich wäre gäbe es immer die Gefahr, das bei einem Update, oder dem löschen/ändern eines Benutzeraccounts, oder beim verwenden von Programmen die Gefahr, das es Inkonsistenzen in den Dateiversionen gibt. Die einzige Lösung ist, das Filehandle (und den Inhalt) zu erhalten, aber den Dateinamen aus dem Dateisystem zu entfernen (oder neu zu vergeben).

Das habe ich schon genutzt um einen Festplatten Cache für Programme zu erzeugen. Man legt eine Datei an, öffnet sie und löscht sie. Das Filehandle ist noch vorhanden und nutzbar, aber die Datei ist nicht mehr im Dateisystem. Terminal-Programme nutzen das auch. Das sieht dann so aus: /tmp/vteCBQ7UW (deleted)

View full thread Sicheres Löschen