Ich benutze Ubuntu 16.04.
Schritt 1) Ich habe mich in meinem root
Benutzerkonto angemeldet .
Schritt 2) Ich habe früher cd
zum Home-Verzeichnis eines anderen Benutzerkontos navigiert.
Schritt 3) Ich habe getippt ls
, um den Inhalt dieses Verzeichnisses zu untersuchen.
Schritt 4) Der Inhalt wurde als leer zurückgegeben.
Schritt 5) Ich habe eingegeben mkdir .ssh
, um ein Verzeichnis zu erstellen.
Ergebnis) mkdir: cannot create directory '.ssh': File exists
Frage: Warum wird das Verzeichnis als leer aufgeführt, wenn darin ein .ssh-Ordner vorhanden ist?
- Update -
Ich habe mich bei root angemeldet, da dies ein Testserver ist. Ich erschaffe und zerstöre es wiederholt.
ll
oderla
nichtls
Antworten:
ls
selbst zeigt keine versteckten Verzeichnisse (versteckte Verzeichnisse und Dateien sind diejenigen , die mit einem Start.
, wie.ssh
)Versuchen Sie es
ls -a
im Verzeichnis.Aus der ls-Manpage:
Wie in den Kommentaren erwähnt, sind "versteckte" Verzeichnisse und Dateien technisch gesehen keine Sache. Es gibt nur Code, der in viele gängige Tools integriert ist, die diese behandeln
.
und eine..
besondere Bedeutung haben. Das Ergebnis wird.
von den meisten Tools normalerweise als "versteckt" angesehen. Der Grund, warum ich diesen Begriff verwendet habe, ist, dass es üblich ist, ihn so zu hören.Zusätzlich
.
und..
normalerweise haben sie für die meisten Dateisysteme eine besondere Bedeutung und geben das aktuelle Verzeichnis bzw. das übergeordnete Verzeichnis an.quelle
ls
und eine ganze Reihe anderer Tools. Aber im Prinzip haben Sie absolut Recht; Andererseits erfordert es selbst auf Systemen, die ihre Abstammung auf MS-DOS und seine Dateiattribute zurückführen, speziellen Code, um den Fall von "versteckten" Dateien zu behandeln (was bedeutet, dass "Dateien mit dem Satz versteckter Attribute" statt "Dateien, die" verwendet werden) habe auf diesem speziellen Formular ") benannt.ls
sollte nur verbergen.
und..
so fügten sie Code hinzu, um zu sehen, ob es mit einem Punkt begannroot
", der mit einer offensichtlichen Unkenntnis von * nixes verbunden ist. Es wäre für OP sehr einfach, versehentlich etwas Wichtiges zu zerstören.Geben Sie in Schritt 3 Folgendes ein,
ls -a
um den Inhalt des Verzeichnisses aufzulisten.Dateien oder Verzeichnisse, deren Name mit beginnt
.
, werden von ignoriertls
.quelle
.ssh ist ein verstecktes Verzeichnis, da es mit einem beginnt
.
Verwenden Sie
ls -a
statt nur , um versteckte Dateien und Verzeichnisse aufzulistenls
.quelle
.ssh
ist keine Datei, es ist ein Verzeichnis"." ist für versteckte Ordner / Dateien reserviert.
ls
Standardmäßig werden die versteckten Dateien und Verzeichnisse nicht aufgelistet. ("." und ".." sind zwei versteckte Standardverzeichnisse in einem beliebigen Verzeichnis). Verwenden Siels -a
oderls -al
(wenn Sie weitere Details zu jeder Datei / jedem Ordner wünschen , um alle Dateien in einem Ordner anzuzeigen .quelle
Zum Erstellen des Verzeichnisses müssen Sie das vorhandene Verzeichnis entfernen
Verwenden Sie rm -rf .ssh, um das Verzeichnis zu entfernen
Oder falls bereits vorhanden Sie können cd .ssh verwenden
quelle