Question ls ne liste pas les fichiers comme prévu


Je suis confronté au problème suivant:

Sortie1

sh-3.2$ ls -R
.:
#dir1  #dir2

./#dir1:
f1  f2  f3

./#dir2:
f1  f2  f3

Sortie2

sh-3.2$ ls #dir1
#dir1  #dir2

Comme vu dans Output1 le répertoire #dir1 a fichier f1 f2 and f3 mais quand Je fais un ls sur le répertoire, je reçois un résultat différent de celui vu dans Output2 Output2 semble suggérer que #dir1 a des répertoires comme #dir1 #dir2.

Qu'est-ce qui se passe ici? Est-ce un lien cyclique?


4
2017-09-04 16:13


origine


Ravi de voir que vous avez une bonne réponse, mais j'ai voté pour le transférer à Super User, qui, je pense, est un site plus approprié ... - dmckee


Réponses:


# est un méta-caractère shell qui marque le début d'un commentaire. Par conséquent

ls #dir1

est effectivement le même que

ls

qui liste tout dans le cwd.

essayez d'échapper à la #

ls \#dir1

ou ou en citant l'intégralité du nom dir:

ls '#dir1'

ou

ls ./#dir1

8
2017-09-04 16:17



Merci beaucoup homme. Moi et mes copains de projet nous avons du mal avec ça


Dans la commande ls #dir1, le shell interprète le caractère de hachage comme le début d'un commentaire - vous obtenez donc une liste du répertoire de travail en cours.


3
2017-09-04 16:17