$ touch "z\1"
$ ls -Q
"z\\1"
Почему «ls -Q» дает результат как "z\\1"
, если имя файла «z\1
»?Почему ls -Q дает вывод как «Z \ 1», если имя файла «Z 1»?
Выход идет с двойной косой чертой между «z» и «1».
$ touch "z\1"
$ ls -Q
"z\\1"
Почему «ls -Q» дает результат как "z\\1"
, если имя файла «z\1
»?Почему ls -Q дает вывод как «Z \ 1», если имя файла «Z 1»?
Выход идет с двойной косой чертой между «z» и «1».
-Q
-Switch (также --quote-names
) будет цитировать имена. Как это делается, определяется --quoting-style
-Switch.
Отрывок из man page: --quoting стиле
= СЛОВО
использовать стиль цитирования WORD для имен входа: буквальное, локали, оболочки, оболочки всегда, с, бежать
Это приведет к следующему результату:
ls --quoting-style=literal "z\1"
=>z\1
ls --quoting-style=locale "z\1"
=>‘z\\1’
ls --quoting-style=shell "z\1"
=>'z\1'
ls --quoting-style=shell-always "z\1"
=>'z\1'
ls --quoting-style=c "z\1"
=>"z\\1"
ls --quoting-style=escape "z\1"
=>z\\1
Я не могу сказать вам, что по умолчанию. Но это должен быть один из них locale, c, escape
-Q должен заключать только с цитатой. ls -b также дает такой же выход. –
Это правильно. Мой вопрос заключается в том, что он должен включать только имена записей в двойных кавычках, почему они дают дополнительную обратную косую черту? –
Я должен быть полностью «мозгом афк» ... Другой ответ был недействительным ... – Mischa
«дать результат как« Z \ 1 », если имя файла« Z \ 1 »- ну, разве это не то, что вы хотели? – sashoalm
двойная косая черта идет как единая косая черта. Выход идет с двойной косой чертой между «z» и «1». –
Это шутка. Но серьезно, прочитайте обратную косую черту. – sashoalm