La commande ls n'affiche pas le dossier mais je ne peux pas le créer car le dossier existe déjà

8

J'utilise Ubuntu 16.04.

Étape 1) Je me suis connecté à mon rootcompte utilisateur.

Étape 2) J'ai utilisé cdpour naviguer vers le répertoire personnel d'un autre compte d'utilisateur.

Étape 3) J'ai tapé lspour examiner le contenu de ce répertoire.

Étape 4) Le contenu est revenu vide.

Étape 5) J'ai tapé mkdir .sshpour créer un répertoire.

Résultat) mkdir: cannot create directory '.ssh': File exists

Question: Pourquoi le répertoire est-il répertorié comme vide si un dossier .ssh existe à l'intérieur?

-- mise à jour --

Je me suis connecté en root car il s'agit d'un serveur de test. Je le crée et le détruis à plusieurs reprises.

DR01D
la source
utiliser llou lanonls
phuclv
1
ll n'est qu'un alias, alors utilisez plutôt ls -alF
Dennis Nolte
2
Votre processus contient un bug majeur à l'étape 1.
Courses de légèreté en orbite

Réponses:

35

lspar lui-même n'affiche pas les répertoires cachés (les répertoires et fichiers cachés sont ceux qui commencent par un ., comme .ssh)

Essayez d'utiliser ls -adans le répertoire.

Depuis la page de manuel ls:

-a, --all

n'ignorez pas les entrées commençant par.

Comme indiqué dans les commentaires, les répertoires et fichiers "cachés" ne sont pas techniquement une chose, il y a juste du code intégré dans de nombreux outils communs qui traitent .et ..avec une signification particulière, le résultat étant .généralement considéré comme "caché" par la plupart des outils. La raison pour laquelle j'ai utilisé ce terme est qu'il est courant de l'entendre se référer de cette façon.

De plus ., ..ils ont généralement une signification spéciale pour la plupart des systèmes de fichiers, indiquant respectivement le répertoire actuel et le répertoire parent.

Patrick
la source
4
Notez que les "répertoires cachés" ne sont pas une chose en soi, ils sont cachés car ls a un code spécial pour ne pas les montrer quand ils commencent par un point.
PlasmaHH
2
@PlasmaHH Eh bien, lset tout un tas d'autres outils. Mais en principe, vous avez absolument raison; là encore, même sur les systèmes qui remontent leur lignée à MS-DOS et ses attributs de fichier, il nécessite un code spécial pour gérer la casse des fichiers "cachés" (ce qui signifie "fichiers avec le jeu d'attributs cachés" plutôt que "fichiers qui ont nommé sur ce formulaire particulier ").
un CVn
3
@ MichaelKjörling: sur beaucoup de ces systèmes, c'est cependant l'inverse. Là, vous demandez normalement au système de "tout me donner" et lorsque vous voulez afficher des fichiers cachés, vous dites "donnez-moi tout plus les choses cachées" ou "donnez-moi toutes les choses cachées". Il fait donc un effort supplémentaire pour masquer les fichiers par rapport à l'effort supplémentaire pour afficher les fichiers cachés aussi.
PlasmaHH
12
Fait amusant, l'invention des fichiers cachés était un bug, lsétait seulement censée se cacher .et .., alors ils ont ajouté du code pour voir si cela commençait par un point
Ferrybig
4
Je suis préoccupé par la partie «connecté en tant que root» combinée avec une méconnaissance apparente avec * nixes. Il serait très facile pour OP de détruire accidentellement quelque chose d'important.
shoover
4

À votre étape 3, tapez ls -apour répertorier le contenu du répertoire.

Le fichier ou le répertoire dont le nom commence par .sera ignoré par ls.

Bruce
la source
0

.ssh est un répertoire caché, car il commence par un .

Pour répertorier les fichiers et répertoires cachés, utilisez ls -aplutôt que juste ls.

Muhammed Sherief
la source
1
.sshn'est pas un fichier, c'est un répertoire
Ferrybig
7
En quoi est-ce autre chose que la réponse acceptée donnée 8 heures à l'avance ou l'autre réponse donnée en même temps que la réponse acceptée?
Colt
-2

"." est réservé aux dossiers / fichiers cachés. lspar défaut, ne répertorie pas les fichiers et répertoires masqués. ("." et ".." sont deux répertoires cachés par défaut dans n'importe quel répertoire). Pour afficher tous les fichiers d'un dossier, utilisez ls -aou ls -al(si vous souhaitez plus de détails sur chaque fichier / dossier.

Chintan Parikh
la source
-4

Pour créer le répertoire, vous devez supprimer le répertoire existant

Utilisez rm -rf .ssh, cela supprimera le répertoire

Ou s'il existe déjà Vous pouvez utiliser cd .ssh

Manoj Malviya
la source