Я плохо знаком с Ubuntu, и я учусь ls
аргументы.
Я протестировал -b, --escape
аргументы (print C-style escapes for nongraphic characters)
но я не нашел полезный пример как использование это.
Я создал файл с именем \*\?\¿\º\ª\?\¿\&\%\$\·SpecialCharacterfile.txt
использование touch
, но когда я использую ls
или ls -b
это перечисляет то же.
*?¿ºª?¿&%$·SpecialCharacterfile.txt
Я использую Ubuntu 14.04.5 LTS
Все Ваши символы являются графическими (у них есть видимые глифы). Попробуйте имя файла, содержащее пробельные и невидимые символы:
$ touch фактический полезный пример, где вывод был бы хитер иначе: имена файлов, которые случайно имели \r
символ, вставленный в них, потому что окончания файла DOS помешали где-нибудь посреди операции:
$ od -c file-list
0000000 s o m e - f i l e . t x t \r \n
0000017
$ xargs -a file-list touch
$ ls -b
\n\t\b\a\b file-list some-file.txt\r
я на самом деле видел это в некотором сообщении на U& L. Лично, я обычно использовал бы ls -q
для вставки копии к самой командной строке:
$ ls -q
'' поведение по умолчанию в более новых версиях ls
ls -q
для интерактивного использования: , Почему 'ls' внезапно переносит объекты с пробелами в одинарных кавычках?
\n\t\b\a\b' ' ' file-list 'some-file.txt' поведение по умолчанию в более новых версиях ls
ls -q
для интерактивного использования: , Почему 'ls' внезапно переносит объекты с пробелами в одинарных кавычках?
\r'
поведение по умолчанию в более новых версиях ls
ls -q
для интерактивного использования: , Почему 'ls' внезапно переносит объекты с пробелами в одинарных кавычках?
\n\t\b\a\b'
$ ls -b
\n\t\b\a\b
$ echo *
$ printf "%q\n" *
фактический полезный пример, где вывод был бы хитер иначе: имена файлов, которые случайно имели \r
символ, вставленный в них, потому что окончания файла DOS помешали где-нибудь посреди операции:
$ od -c file-list
0000000 s o m e - f i l e . t x t \r \n
0000017
$ xargs -a file-list touch
$ ls -b
\n\t\b\a\b file-list some-file.txt\r
я на самом деле видел это в некотором сообщении на U& L. Лично, я обычно использовал бы ls -q
для вставки копии к самой командной строке:
$ ls -q
'' поведение по умолчанию в более новых версиях ls
ls -q
для интерактивного использования: , Почему 'ls' внезапно переносит объекты с пробелами в одинарных кавычках?
\n\t\b\a\b' ' ' file-list 'some-file.txt' поведение по умолчанию в более новых версиях ls
ls -q
для интерактивного использования: , Почему 'ls' внезапно переносит объекты с пробелами в одинарных кавычках?
\r'
поведение по умолчанию в более новых версиях ls
ls -q
для интерактивного использования: , Почему 'ls' внезапно переносит объекты с пробелами в одинарных кавычках?
\n' фактический полезный пример, где вывод был бы хитер иначе: имена файлов, которые случайно имели \r
символ, вставленный в них, потому что окончания файла DOS помешали где-нибудь посреди операции:
$ od -c file-list
0000000 s o m e - f i l e . t x t \r \n
0000017
$ xargs -a file-list touch
$ ls -b
\n\t\b\a\b file-list some-file.txt\r
я на самом деле видел это в некотором сообщении на U& L. Лично, я обычно использовал бы ls -q
для вставки копии к самой командной строке:
$ ls -q
'' поведение по умолчанию в более новых версиях ls
ls -q
для интерактивного использования: , Почему 'ls' внезапно переносит объекты с пробелами в одинарных кавычках?
\n\t\b\a\b' ' ' file-list 'some-file.txt' поведение по умолчанию в более новых версиях ls
ls -q
для интерактивного использования: , Почему 'ls' внезапно переносит объекты с пробелами в одинарных кавычках?
\r'
поведение по умолчанию в более новых версиях ls
ls -q
для интерактивного использования: , Почему 'ls' внезапно переносит объекты с пробелами в одинарных кавычках?
\t' фактический полезный пример, где вывод был бы хитер иначе: имена файлов, которые случайно имели \r
символ, вставленный в них, потому что окончания файла DOS помешали где-нибудь посреди операции:
$ od -c file-list
0000000 s o m e - f i l e . t x t \r \n
0000017
$ xargs -a file-list touch
$ ls -b
\n\t\b\a\b file-list some-file.txt\r
я на самом деле видел это в некотором сообщении на U& L. Лично, я обычно использовал бы ls -q
для вставки копии к самой командной строке:
$ ls -q
'' поведение по умолчанию в более новых версиях ls
ls -q
для интерактивного использования: , Почему 'ls' внезапно переносит объекты с пробелами в одинарных кавычках?
\n\t\b\a\b' ' ' file-list 'some-file.txt' поведение по умолчанию в более новых версиях ls
ls -q
для интерактивного использования: , Почему 'ls' внезапно переносит объекты с пробелами в одинарных кавычках?
\r'
поведение по умолчанию в более новых версиях ls
ls -q
для интерактивного использования: , Почему 'ls' внезапно переносит объекты с пробелами в одинарных кавычках?
\b' фактический полезный пример, где вывод был бы хитер иначе: имена файлов, которые случайно имели \r
символ, вставленный в них, потому что окончания файла DOS помешали где-нибудь посреди операции:
$ od -c file-list
0000000 s o m e - f i l e . t x t \r \n
0000017
$ xargs -a file-list touch
$ ls -b
\n\t\b\a\b file-list some-file.txt\r
я на самом деле видел это в некотором сообщении на U& L. Лично, я обычно использовал бы ls -q
для вставки копии к самой командной строке:
$ ls -q
'' поведение по умолчанию в более новых версиях ls
ls -q
для интерактивного использования: , Почему 'ls' внезапно переносит объекты с пробелами в одинарных кавычках?
\n\t\b\a\b' ' ' file-list 'some-file.txt' поведение по умолчанию в более новых версиях ls
ls -q
для интерактивного использования: , Почему 'ls' внезапно переносит объекты с пробелами в одинарных кавычках?
\r'
поведение по умолчанию в более новых версиях ls
ls -q
для интерактивного использования: , Почему 'ls' внезапно переносит объекты с пробелами в одинарных кавычках?
\a' фактический полезный пример, где вывод был бы хитер иначе: имена файлов, которые случайно имели \r
символ, вставленный в них, потому что окончания файла DOS помешали где-нибудь посреди операции:
$ od -c file-list
0000000 s o m e - f i l e . t x t \r \n
0000017
$ xargs -a file-list touch
$ ls -b
\n\t\b\a\b file-list some-file.txt\r
я на самом деле видел это в некотором сообщении на U& L. Лично, я обычно использовал бы ls -q
для вставки копии к самой командной строке:
$ ls -q
'' поведение по умолчанию в более новых версиях ls
ls -q
для интерактивного использования: , Почему 'ls' внезапно переносит объекты с пробелами в одинарных кавычках?
\n\t\b\a\b' ' ' file-list 'some-file.txt' поведение по умолчанию в более новых версиях ls
ls -q
для интерактивного использования: , Почему 'ls' внезапно переносит объекты с пробелами в одинарных кавычках?
\r'
поведение по умолчанию в более новых версиях ls
ls -q
для интерактивного использования: , Почему 'ls' внезапно переносит объекты с пробелами в одинарных кавычках?
\b'
фактический полезный пример, где вывод был бы хитер иначе: имена файлов, которые случайно имели \r
символ, вставленный в них, потому что окончания файла DOS помешали где-нибудь посреди операции:
$ od -c file-list
0000000 s o m e - f i l e . t x t \r \n
0000017
$ xargs -a file-list touch
$ ls -b
\n\t\b\a\b file-list some-file.txt\r
я на самом деле видел это в некотором сообщении на U& L. Лично, я обычно использовал бы ls -q
для вставки копии к самой командной строке:
$ ls -q
'' поведение по умолчанию в более новых версиях ls
ls -q
для интерактивного использования: , Почему 'ls' внезапно переносит объекты с пробелами в одинарных кавычках?
\n\t\b\a\b' ' ' file-list 'some-file.txt' поведение по умолчанию в более новых версиях ls
ls -q
для интерактивного использования: , Почему 'ls' внезапно переносит объекты с пробелами в одинарных кавычках?
\r'
поведение по умолчанию в более новых версиях ls
ls -q
для интерактивного использования: , Почему 'ls' внезапно переносит объекты с пробелами в одинарных кавычках?
Примером, который я нашел сам
$ touch "Hello This is my file"
$ ls
Hello This is my file
опция
$ ls -b
Hello\ This\ is\ my\ file
With -b
, не Является 2-й лучше, когда я хочу использовать вывод где-то в другом месте в моем коде?
В дополнение к ответ muru , который объясняет, что ни один из символов в Вашем имени файла не является неграфическим, я укажу, что Ваше имя файла на самом деле не содержит обратных косых черт (оболочка удаляет их при выполнении команды, конечно)
, Если бы это сделало, [то 111] заставил бы их быть распечатанными с Escape:
$ touch 'hi\(zanna' hi\(zanna
$ ls
hi(zanna hi\(zanna
$ ls -b
hi(zanna hi\\(zanna
Путем Вы создали файлы, был, вероятно, путем прямой вставки теста. Создать файлы с обратной косой чертой выходит из Вас, должен использовать $'...'
тип заключения в кавычки.
Таким образом создание файлов должно быть:
$ touch one$'\n'two three$'\t'four
И ls -b
покажет нам их представление:
$ ls -b
one\ntwo three\tfour
В то время как значение по умолчанию ls
не будет:
$ ls
one?two three?four
Отметьте, это имеющее Escape обратной косой черты в файлах может повредить Ваши сценарии, следовательно никогда не нужно анализировать ls. И точно основная цель для ls -b
- видеть, какие имена файлов имеют и потенциально диагностируют их.