4

Я сталкиваюсь со следующей проблемой:

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 Output2, кажется, предполагает, что #dir1 имеет каталоги, подобные #dir1 #dir2 .

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

2 ответа2

8

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

ls #dir1

эффективно так же, как

ls

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

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

ls \#dir1

или или цитируя полное имя dir:

ls '#dir1'

или же

ls ./#dir1
3

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .