Anfangs dachte ich, es sei ein Zufall, aber jetzt sehe ich, dass es dafür sogar ein Tag gibt : Alle versteckten Dateinamen beginnen mit einem Punkt. Ist das eine Konvention? Warum wurde es gewählt? Kann es geändert werden? Oder mit anderen Worten (als verwandte Frage schlug @evilsoup vor, dass dies die Antwort auf eine Reihe anderer impliziert): Kann ich Dateien ausblenden, ohne sie umzubenennen (wobei ich .
als erstes Zeichen ihres Namens verwende)?
filesystems
filenames
dot-files
JMCF125
quelle
quelle
Antworten:
Laut Wikipedia ,
... also hat es als Fehler angefangen und wurde dann als Feature aufgenommen (für den Datensatz
.
ist es ein Link zum aktuellen Verzeichnis und..
ein Link zum darüber liegenden Verzeichnis, aber ich bin mir sicher, dass Sie das bereits wissen ). Da diese Methode zum Ausblenden von Dateien die meiste Zeit gut genug ist, hat sich wahrscheinlich niemand die Mühe gemacht, das Ausblenden von Dateien im Windows-Stil zu implementieren.Es gibt auch die Tatsache, dass die Implementierung eines anderen Verhaltens eine noch größere Fragmentierung der * nix-Welt zur Folge hätte, was das Letzte ist, was sich jeder wünscht.
Es gibt eine andere Methode zum Ausblenden von Dateien, bei der sie nicht umbenannt werden. Sie funktioniert jedoch nur für GUI-Dateimanager (und unter diesen ist sie nicht universell - die großen Linux-Unternehmen verwenden sie, aber ich glaube nicht, dass der Finder von OSX dies tut, und Je mehr Nischen-Linux-Dateimanager dieses Verhalten unterstützen, desto unwahrscheinlicher ist es, dass Sie eine Datei mit dem Namen erstellen
.hidden
und die Dateinamen, die Sie verbergen möchten, in eine Zeile einfügen.ls
und Shell Globs werden dies nicht respektieren, aber es könnte trotzdem nützlich für Sie sein.quelle
Dateien, die mit einem Punkt beginnen, sind standardmäßig vom Befehl "ls" ignoriert. Dieser Befehl hat mehr oder weniger den gleichen Effekt wie "versteckte" Dateien, ist jedoch nicht derselbe (andere Befehle können dies auch tun oder nicht). Dateien, die mit einem Punkt beginnen, werden nicht "ausgeblendet", da "ausgeblendet" nicht zu ihren Attributen gehört. Im Gegensatz zu DOS / Windows ist "hidden" unter Unix kein Attribut. Es gibt viele Attribute in Unix ("man chattr" sagt Ihnen alles), aber versteckt ist keines davon.
Der Grund, warum Punktedateien von "ls" ignoriert werden, ist eigentlich ziemlich lustig / peinlich. Es war keine Designentscheidung, sondern das Ergebnis eines Softwarefehlers in den Anfängen von Unix . Wenn das Besondere. und .. Verzeichniseinträge zum Dateisystem hinzugefügt wurden, wurde entschieden, dass der Befehl ls sie nicht anzeigen sollte, da sie im Weg waren. Das Programm wurde jedoch in aller Eile geschrieben, um alle Dateien auszuschließen, deren Name mit einem beginnt. Zeichen, anstatt die genauen Namen "." oder "..". Und es wurde ein Präzedenzfall geschaffen, dem seitdem in Unix gefolgt wurde. Lustigerweise haben die Unix-Leute, als sie Plan 9 erstellten, absichtlich keine Punktedateien darin abgelegt .
quelle
man chattr
, obwohl ich dachte, ich bräuchte vielleicht ein Paket oder ein bestimmtes Programm, um andere versteckte Dateien zu ermöglichen.Ob Sie Dateien ausblenden können oder nicht und unter welchen Bedingungen, hängt vom verwendeten Dateisystem und seinem Treiber ab. Herkömmliche Unix-Dateisysteme haben kein "hide" -Attribut für Dateien.
Ein Dateisystemtreiber kann alle gewünschten Dateien ausblenden, indem er einfach ihre Namen weglässt, wenn er Systemaufrufen Ergebnisse liefert, die zum Abrufen einer Verzeichnisliste verwendet werden. Wie Sergut in seiner Antwort beschrieben hat, sind Dateien, die mit einem Punkt beginnen, nicht wirklich verborgen.
(So können Rootkits auch ihre Dateien verbergen: Sie schließen sich den Systemaufrufen an, die Verzeichnislisten erzeugen, und filtern die Dateien heraus, die sie verbergen möchten.)
In Oracle ACFS-Cluster-Dateisystemen ist das Verzeichnis
<filesystem mountpoint>/.ACFS/
beispielsweise wirklich verborgen: Es wird überhaupt nicht aufgelistet, auch nicht mitls -a
. Aber wenn Sie wissen, dass es dort ist, können Sie gut darauf zugreifen.Wenn Sie die Snapshot-Funktion des ACFS-Dateisystems verwenden, können Sie über dieses
.ACFS
Verzeichnis auf alle vorhandenen Snapshots des Dateisystems zugreifen . Wenn es nicht ausgeblendet ist, sichert ein Sicherungsprogramm möglicherweise sowohl den aktuellen Inhalt des Dateisystems als auch den Inhalt aller vorhandenen Snapshots, was wahrscheinlich unerwünscht wäre. Normalerweise möchten Sie entweder den aktuellen Status oder den Status eines bestimmten Snapshots sichern.quelle