2016-03-03 3 views
0
$ touch "z\1" 
$ ls -Q 
"z\\1" 

Почему «ls -Q» дает результат как "z\\1", если имя файла «z\1»?Почему ls -Q дает вывод как «Z \ 1», если имя файла «Z 1»?

Выход идет с двойной косой чертой между «z» и «1».

+0

«дать результат как« Z \ 1 », если имя файла« Z \ 1 »- ну, разве это не то, что вы хотели? – sashoalm

+1

двойная косая черта идет как единая косая черта. Выход идет с двойной косой чертой между «z» и «1». –

+0

Это шутка. Но серьезно, прочитайте обратную косую черту. – sashoalm

ответ

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

+0

-Q должен заключать только с цитатой. ls -b также дает такой же выход. –

+0

Это правильно. Мой вопрос заключается в том, что он должен включать только имена записей в двойных кавычках, почему они дают дополнительную обратную косую черту? –

+0

Я должен быть полностью «мозгом афк» ... Другой ответ был недействительным ... – Mischa

 Смежные вопросы

  • Нет связанных вопросов^_^