Versteckte DateiEine versteckte Datei ist eine Datei, die in einem Betriebssystem bei bestimmten Anwendungen ausgeblendet wird. Dies dient im Allgemeinen der Erhöhung der Übersichtlichkeit oder dem Schutz vor versehentlichem Löschen betriebssystemeigener Komponenten. Auf Verzeichnisse trifft dies analog zu. Je nach Terminus heißt es verstecktes Verzeichnis und verstecktes Unterverzeichnis oder versteckter Ordner und versteckter Unterordner. GeschichteUnter Unix sind versteckte Dateien eher zufällig aus einem Hack heraus entstanden. Bei der Entwicklung des Unix-Dateisystems wurden zur Navigation innerhalb des Verzeichnisbaums die reservierten Dateinamen Diese vereinfachte Programmierung ermöglichte nun jedoch auch, andere Dateien vor allen Unix-Kommandos zu „verstecken“. Dazu ist es lediglich notwendig, die vereinfachte Prüfung zu bestehen, was auf jeden Dateinamen zutrifft, der mit einem Punkt beginnt.[2] Spätere Betriebssysteme, beispielsweise MS-DOS und klassisches Mac OS, fügten Dateien Attribute hinzu, wovon eines eine Datei oder ein Verzeichnis in gleicher Art und Weise wie unter Unix „versteckt“. Technische UmsetzungEs gibt unterschiedliche Konzepte, wie versteckte Dateien vom Betriebssystem gekennzeichnet werden. Die von Unix und Unix-artigen Betriebssystemen verwendete ist, geschichtlich vorgegeben, die Kennzeichnung durch den Dateinamen selbst. Durch sogenannte „Punkt-Dateien“ (englisch dot-files) wird dabei angezeigt, dass es sich um eine versteckte Datei handelt. Im Umkehrschluss ist damit aber auch eine versteckte Datei unmöglich, deren Name nicht mit einem Punkt beginnt. Da diese Logik in wichtige Teile des Betriebssystems selbst integriert ist, funktioniert sie auf allen eingebundenen Volumes, unabhängig von deren Format (wie etwa deren Dateisystem). Eine weitere Möglichkeit sind Metadaten im Dateisystem, die vom Betriebssystem (oder vom Dateisystemtreiber) ausgewertet werden. Dabei werden jeder Datei Attribute zugeordnet und zusätzlich zum Dateinamen abgespeichert. Dies bedingt jedoch einerseits, dass für das jeweilige Betriebssystem entsprechend erweiterte Schnittstellen und somit Anforderungen an entsprechende Dateisysteme gestellt sind, zum anderen müssen zwingend Betriebssystem-seitige Dienstprogramme und Funktionen vorhanden sein, die diese Metadaten verwalten können. Da fast jedes Betriebssystem sein eigenes Dateisystem hervorgebracht hat, sind diese zur Verwaltung der Metadaten ineinander verwoben und voneinander abhängig. Beim Macintosh von Apple beispielsweise gab es unter dem klassischen Mac OS die Dateisysteme HFS und HFS+. In beiden Dateisystemen besteht jede Datei aus einer data fork und einer resource fork. Während in der data fork der eigentliche Inhalt der Datei gespeichert wird, finden sich in der resource fork Metadaten, aber auch Ressourcen, die von einem Programm in der data fork verwendet werden können (z. B. Icons, Bilder oder andere Daten). Zusätzlich verwaltet aber auch das Betriebssystem selbst Metadaten in der resource fork, wie etwa das PC-kompatibles DOS wie MS-DOS verwendet das von Microsoft entwickelte FAT-Dateisystem, das zum Dateinamen zusätzlich eine Reihe von einfachen Attributen speichert. Eines davon ist das Die designierten Nachfolger von PC DOS und MS-DOS waren in den 1990er Jahren OS/2 von IBM (und anfangs auch Microsoft) sowie Windows von Microsoft. Beide Systeme verwendeten anfangs zwar auch FAT, brachten aufgrund diverser Limitierungen von FAT aber auch eigene Dateisysteme hervor: HPFS von OS/2 und NTFS von Windows NT. Die Dateiattribute von FAT wurden dabei übernommen und erweitert, sodass es das „Versteckt“-Attribut auch in diesen Dateisystemen weiterhin gibt. In NTFS ist mit ADS (für englisch Alternate Data Streams) die Funktion eines alternativen Datenstroms enthalten, die den Forks des Macintosh entspricht. Für versteckte Dateien werden Streams jedoch nicht verwendet. DarstellungAus der jeweiligen technischen Umsetzung ergeben sich die Konventionen, wie in einem Betriebssystem mit versteckten Dateien umgegangen wird. Diese werden mitunter von den Anwendungsprogrammen übernommen, jedoch nicht zwingend. Bei Systemprogrammen, in erster Linie jenen, die vom Betriebssystem mitgeliefert werden, sind diese Konventionen jedoch die Standardeinstellung. Ein Beispiel dafür sind Dateimanager, die in der Voreinstellung versteckte Dateien und Verzeichnisse ausblenden. Meist existiert jedoch eine Option in den Einstellungen, die es dem Benutzer erlaubt, versteckte Dateien dennoch anzuzeigen. Bei der Darstellung werden versteckte Dateien meist gekennzeichnet, etwa durch erhöhte Transparenz des Symbols, oder farblich anders dargestellt, etwa den Dateinamen in grau statt in schwarz. Unter einem Kommandozeileninterpreter werden bei dem Kommando zur Auflistung der Dateien ebenfalls standardmäßig versteckte Dateien und Verzeichnisse nicht gelistet. Dies ist z. B. bei AnwendungenBei diversen Funktionen im Betriebssystem werden versteckte Dateien normalerweise nicht erfasst, wie beispielsweise bei Kopier- und Verschiebeaktionen. Dies betrifft die Kommandozeile ebenso (z. B. Bei der Auswahl eines Verzeichnisses, das rekursiv kopiert oder verschoben wird, werden hingegen auch die versteckten Dateien darin mit übertragen. Versteckte Dateien werden für unterschiedliche Zwecke verwendet und dies ist im Allgemeinen eine Entscheidung des Entwicklers von Software. So finden sich zahlreiche unterschiedliche Beispiele:
BeispieleUnter Unix-Systemen wird eine Datei durch einfaches Umbenennen versteckt. Um eine versteckte Datei zu erstellen, kann z. B. folgendes Kommando herangezogen werden: % touch .versteckte_Datei.txt Die Datei % nano .versteckte_Datei.txt In der Auflistung wird die Datei normalerweise jedoch nicht angezeigt, außer mit dem Parameter % ls -a Um mit Werden nun alle Dateien aus dem aktuellen Verzeichnis mit dem Wildcard % cp *.* /Pfad/zum/Ziel Dies betrifft auch die Einschränkung auf Dateinamenserweiterungen, etwa nur Textdateien mit dem Wildcard Unter PC-kompatiblem DOS wie MS-DOS kann das Kommando ATTRIB die Dateiattribute, darunter „versteckt“, anzeigen, setzen oder löschen. C:\>attrib Datei.Ext Auch unter DOS sind versteckte Dateien nicht im Wildcard C:\>attrib -h Datei.Ext Nach dem Kopiervorgang sollte das englisch hidden flag, je nach Vorhaben auch bei der Zieldatei, wieder gesetzt werden: C:\>attrib +h Datei.Ext C:\>cd \Pfad\zum\Ziel\des\Kopierens\ C:\Pfad\zum\Ziel\des\Kopierens>attrib +h Datei.Ext Alternativ gibt es Kommandos bzw. Kommandozeilenparameter oder Programme, die auch versteckte Dateien inkludieren können. Dies ist vor allem bei der Datensicherung essentiell. Ein Beispiel dafür ist das Backup-Dienstprogramm rsync, oder unter DOS beispielsweise xcopy. In grafischen Dateimanagern – wie beispielsweise dem Explorer von Windows, dem Finder von macOS, Dolphin von Plasma (KDE, bis Version 3 noch Konqueror) oder Nautilus von Gnome – gibt es hierfür eine Ansichtsoption, die die Anzeige von versteckten Dateien allgemein (global) aktiviert. Je nach spezieller Umgebung, beispielsweise in Nautilus, kann auch eine bestimmte Tastenkombination die Anzeige freischalten, welche nur das aktuelle Fenster betrifft, es gibt jedoch auch Einstellungen, die die Anzeige versteckter Dateien Betriebssystem-weit umschalten, beispielsweise beim Windows-Explorer oder beim Finder von macOS. Damit werden dann auch auf dem Desktop versteckte Dateien angezeigt. Im Finder wird unter klassischem Mac OS, das ist Mac OS bis Version 9, das in der resource fork gespeicherte Attribut ausgewertet. Da dieses im Dateisystem gespeichert ist, wird dieser alternative Datenstrom auch unter Mac OS X, das eigentlich ein auf BSD basierendes Unix-Betriebssystem ist, berücksichtigt. KompatibilitätIm Grundsatz sind die verschiedenen technischen Umsetzungen der jeweiligen Betriebssysteme nicht zueinander kompatibel. Das zeigt sich in der Praxis immer dann, wenn Daten zwischen unterschiedlichen Systemen ausgetauscht werden sollen bzw. wenn System-fremde Dateisysteme verwendet werden. Es ist z. B. auf FAT-Dateisystemen, die keine langen Dateinamen unterstützen, unmöglich, dass eine Datei mit einem Punkt beginnt: Im ursprünglichen File Allocation Table (FAT) müssen alle Dateien der 8.3-Konvention folgen (retronym auch kurze Dateinamen genannt), die den Punkt automatisch nach den maximal 8 Zeichen des Dateinamens vorsieht, gefolgt von der Dateinamenserweiterung, die nur 3 Zeichen lang sein kann (daher 8.3). Der Punkt zur Trennung ist daher nicht Teil des Dateinamens, sondern Teil der Konvention selbst; Dateinamen werden im File Allocation Table folglich ohne Punkt gespeichert und im Dateinamens selbst werden keine (weiteren) Punkte unterstützt. Wenn also Unix auf einem FAT-Dateisystem eine versteckte Datei anlegen will, scheitert es, weil dieses nicht kompatibel ist. Kompatibilitätsschichten wie UMSDOS konnten zwar Abhilfe schaffen, waren jedoch vom Betriebssystem abhängig, das UMSDOS implementierte (nur Linux, nicht jedes Unix). Auf moderneren Dateisystemen, aber auch FAT mit der Erweiterung VFAT sowie auf dem Nachfolger exFAT, können Punkt-Dateien jedoch ohne Probleme erstellt werden und sind daraufhin auf allen Unix-artigen Betriebssystem automatisch versteckt. Wird allerdings vom Dateisystemtreiber nicht gleichzeitig das Attribut „versteckt“ oder „unsichtbar“ gesetzt, so ist dieselbe Datei auf Betriebssystemen ohne die Unix-Konvention dann plötzlich sichtbar, was folgendes Beispiel veranschaulicht: Erstellt man auf einer FAT12-Diskette mit VFAT-Erweiterung (lange Dateinamen) unter MS-DOS die Datei MS-DOS: A:\>copy NUL: HIDDEN.TXT A:\>dir HIDDEN.TXT 1 Dateien A:\>attrib +h HIDDEN.TXT A:\>dir 0 Dateien Linux: % touch .hidden.txt % ls HIDDEN.TXT % ls -a . .. .hidden.txt HIDDEN.TXT Die eigentlich versteckte Datei mit dem FAT-Attrib „hidden“, MS-DOS: A:\>dir .hidden.txt 1 Dateien Unter DOS mit LFN wird die Datei Ähnliche Schwierigkeiten gibt es zumeist auf Netzlaufwerken. Einzelnachweise
|