Thread Sicheres Löschen
(25 answers)
Opened by bianca at 2013-04-07 09:48
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/*" ); 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) |