Почему `ls [0 -9] `находит файл с именем `[0 -9] `и, что еще хуже, не после `touch 1 `?

Иногда вам нужно установить для пользователя вход без пароля для автоматического входа в систему, сценарии оболочки, чтобы вам не нужно было вводить пароль. Этого можно добиться с помощью команды passwd с опцией-d , которая удаляет уже назначенный пароль.

Пример:

пароль -d ИМЯ ПОЛЬЗОВАТЕЛЯ

Когда вы закончите с этим изменением, поле пароля в поле /etc/shadow станет пустым, чтобы без пароля вы могли войти с любого компьютера на локальный компьютер. Обновление :Некоторые пользователи указали, что это работает только для локального входа в систему, но для удаленного входа это не сработает.

0
27.09.2020, 04:07
1 ответ

Вы должны установить опцию failglobс помощью shopt -s failglob:

.
$ ls [2-9]
ls: cannot access '[2-9]': No such file or directory
$ touch '[2-9]'
$ ls [2-9]
[2-9]
$ shopt -s failglob
$ ls [2-9]
bash: no match: [2-9]

Bonus question: why did the second-to-last ls print a leading space?

Из-за нового "удобного для пользователя -" стиля цитирования по умолчанию GNU ls:

$ touch 1
$ unset QUOTING_STYLE # use the default
$ ls
 1  '[2-9]'
$ QUOTING_STYLE=literal ls
1  [2-9]
$ ls --quoting-style=literal
1  [2-9]
7
18.03.2021, 23:02

Теги

Похожие вопросы