Вопрос: ls не отображает файлы как ожидалось


Я столкнулся со следующей проблемой:

Output1

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

./#dir1:
f1  f2  f3

./#dir2:
f1  f2  f3

Выход2

sh-3.2$ ls #dir1
#dir1  #dir2

Как видно в Output1, каталог #dir1 имеет файл f1 f2 and f3 но когда Я делаю ls в каталоге, я получаю другой вывод, как видно в Output2 Результат 2, по-видимому, предполагает, что #dir1 имеет такие каталоги, как #dir1 #dir2,

Что здесь происходит? Это какая-то циклическая ссылка?


4
2017-09-04 16:13


Источник


Приятно видеть, что у вас есть хороший ответ, но у меня есть голосование, чтобы перенести это на Суперпользователя, который, я считаю, является более подходящим сайтом ... - dmckee


Ответы:


# является метасимволом оболочки, который отмечает начало комментария, следовательно

ls #dir1

эффективно аналогична

ls

который перечисляет все в cwd.

попробуйте избежать #

ls \#dir1

или или цитирование всего имени dir:

ls '#dir1'

или

ls ./#dir1

8
2017-09-04 16:17



Большое спасибо человеку. Мне и моим партнерам по проекту, у нас есть немного времени с этим


В команде ls #dir1, оболочка интерпретирует хэш-символ как начало комментария, поэтому вы получаете список текущего рабочего каталога.


3
2017-09-04 16:17