Warum sind einige Dateien und Ordner versteckt?

12

Ich kann das Grundprinzip verstehen, Dateien und Ordner im /home/userVerzeichnis zu verstecken , um zu verhindern, dass Benutzer mit Dingen herumspielen. Ich aber sehe nicht , wie die gleichen Gründe , um Dateien in die angewendet werden können /etc, /bootund /varVerzeichnisse , die die Domäne der Administratoren.

Meine Frage ist, warum einige Dateien und Ordner vor Administratoren verborgen sind? Beispiel:

/boot/.vmlinuz-3.11.1-200.fc20.x86_64.hmac
/etc/.pwd.lock
/etc/selinux/targeted/.policy.sha512
/etc/.java
/etc/.java/.systemPrefs
/etc/skel/.bash_profile
/root/.ssh
/root/.config
/var/cache/yum/x86_64/20/.gpgkeyschecked.yum
/var/spool/at/.SEQ
/var/lib/pear/.filemap
Fragenüberlauf
quelle
1
schau die zweite Antwort. Der Grund für diese aufgelisteten Dateien ist, dass es sich entweder um Konfigurationsdateien handelt, die nicht täglich geändert werden sollten und immer als .ssh- und .bash_profile-Dateien vorliegen, damit Sie nicht wissen möchten, dass sie vorhanden sind. Dies ist nur eine Konvention. Dateien bei Spool sind temporäre Dateien, die mit vielen anderen Dateien identisch sind. Sie sollten daher nicht manuell bearbeitet werden, da sie ausgeblendet sind
vfbsilva
3
.ssh und .config haben immer den Namen, unabhängig davon, ob sie sich im Home-Verzeichnis eines normalen Benutzers oder im Home-Verzeichnis des Root-Benutzers befinden. / etc / skel soll ein Prototyp für die Home-Verzeichnisse neuer Benutzer sein, und die Dateien haben dort dieselben Namen wie in den neu erstellten Verzeichnissen.
Mark Plotnick
2
Diese Dateien sind jedoch nicht versteckt . Der lsBefehl listet standardmäßig keine Dateien auf, die mit einem Punkt beginnen (siehe info ls) - es ist das Design dieser speziellen Software.
1
@ illuminÉ: Wie genau würden Sie "versteckt" definieren, wenn nicht "standardmäßig nicht angezeigt"? Beachten Sie, dass dies nicht nur eine Eigenschaft von ist ls. Auch bei der Shell-Erweiterung von Globs werden diese Dateien nur berücksichtigt, wenn der führende Punkt explizit im Muster enthalten ist. In der Regel werden sie von Dateimanagern nur angezeigt, wenn Sie die Option "Versteckte Dateien anzeigen" auswählen (Ja, diese Option verwendet diesen Begriff).
Celtschk

Antworten:

15

Sie haben die Hauptgründe für "versteckte Dateien" falsch interpretiert. Es ist nicht

um zu verhindern, dass Benutzer mit Dingen herumspielen.

Obwohl es für sehr neue Benutzer diese Konsequenz haben kann, bis sie erfahren, was eine "Punktdatei" ist ( Punktdatei und Punktverzeichnis sind möglicherweise angemessenere und spezifischere Begriffe als "versteckt"). An sich hindert es Sie nicht daran, mit Dingen herumzuspielen - dafür sind Berechtigungen vorgesehen. Es ist vielleicht hilfreich, neuen Benutzern anzuzeigen, dass sie damit nichts anfangen sollten, bis sie verstanden haben, wofür es gedacht ist.

Sie können sich das Punktpräfix also als eine Art Dateiendung vorstellen. Beachten Sie, dass sie normalerweise keine haben, obwohl dies möglich ist. Es zeigt an, dass diese Datei für das allgemeine Browsen nicht von Interesse ist, weshalb sie von lsDateibrowsern normalerweise nicht angezeigt wird. Da es sich jedoch um ein Präfix anstelle eines Suffix handelt, gibt es den zusätzlichen Bonus, wenn Sie sie ls -ain lexikografischer Reihenfolge anzeigen ( ), um sie alle zusammen aufgelistet zu sehen.

Der normale Zweck einer solchen Datei ist die Verwendung durch eine Anwendung (z. B. Konfiguration). Sie müssen sie nicht direkt verwenden oder sich ihrer bewusst sein.

Dieses "Verstecken" ist also nicht so sehr darauf ausgerichtet, die Datei buchstäblich vor dem Benutzer zu verbergen, sondern um Unordnung zu vermeiden und eine gewisse konzeptionelle Organisation zu gewährleisten.

Goldlöckchen
quelle
Danke für deine Antwort. Bedeutet dies, dass diese Dateien von geringerer Bedeutung sind und daher verborgen sind, um Unordnung zu vermeiden?
Fragenüberlauf
1
Ich denke, das hängt von Ihrer Perspektive ab. Es sagt etwas darüber aus, welche Bedeutung die Datei (wahrscheinlich) hat. Sie werden in Basisverzeichnissen für Benutzerkonfigurationen verwendet, sie werden jedoch auch in Verzeichnissen verwendet, um die Konfiguration pro Verzeichnis anzuzeigen . Zwei Beispiele: Versionskontrollsysteme wie git verwenden sie. Wenn gitein bestimmtes Verzeichnis durchsucht wird und eine .gitignoreDatei vorhanden ist, wird diese gelesen. und wenn Sie anfangen gdb, liest es eine $PWD/.gdbinitDatei, falls vorhanden ( und eine ~/.gdbinitandere übliche Methode).
Goldlöckchen
4

/etc/skelEnthält Dateien, die in die Home-Verzeichnisse eines neuen Benutzers kopiert werden sollen. Daher sind die Namen natürlich dieselben wie im Home-Verzeichnis eines Benutzers. Das erklärt /etc/skel/.bash_profile. Das Verzeichnis /rootist auch ein Ausgangsverzeichnis, nämlich das Ausgangsverzeichnis des Benutzers root. Dies erklärt /root/.sshund /root/.config.

/etc/.pwd.lockscheint eine Sperrdatei zu sein. Normalerweise interessieren Sie sich nicht für Sperrdateien, daher ist es sinnvoll, diese zu verbergen.

Für die anderen Dateien weiß ich nicht, wofür sie bestimmt sind, aber ich bin mir sicher, dass es auch eine gute Erklärung dafür gibt, warum sie versteckt sind.

Und natürlich ist Goldlöckchen richtig, dass Punktedateien versteckt sind, um niemanden daran zu hindern, mit ihnen zu spielen (die Grundidee von Unix ist anzunehmen, dass der Benutzer weiß, was er tut), aber um zu verhindern, dass sie Ihre Verzeichnislisten überladen ( obwohl ich für Konfigurationsdateien im Home-Verzeichnis ein etcUnterverzeichnis für eine bessere Lösung gehalten hätte).

Celtschk
quelle
+1 "Konfigurationsdateien im Home-Verzeichnis" war eine ziemlich blöde Idee. Sie werden nur versteckt, um angezeigt zu werden, wenn Sie sie wirklich nicht sehen möchten.
Maaartinus
3

Dies könnte eine sehr opiniated Antwort sein, aber ich denke , der Hauptgrund Dateien Punkt und Punkt - Verzeichnisse sind so markiert ist nicht zu verbergen oder dunkel sie - ich glaube , es ist nur der Benutzer wissen zu lassen , dass innerhalb dieser Dateien und Verzeichnisse sind Programms und des Benutzers Einstellungen, die von ihnen oder von den Programmen selbst geändert werden können.

Die Tatsache, dass Punktdateien und Punktverzeichnisse in der Befehlszeile lsund in den Ansichten der meisten Dateimanager standardmäßig weggelassen werden, ist nur eine Ware - Sie möchten nicht die internen / Details für alles anzeigen, es sei denn, der Benutzer fordert dies an. Wenn der Benutzer eine Einstellung ändern möchte und dies nicht über eine grafische Benutzeroberfläche kann, wird er die gesuchte Einstellung mit hoher Wahrscheinlichkeit in einer Punktdatei finden .

zB> drinnen $HOME/.vimrcfindest du die Konfigurationseinstellung für vim.

jimm-cl
quelle