специальный символ в имени файла (\#033OA)

Ошибочный выход. Больше флагов

Если будет ошибка, то она выйдет сразу же.

$? статус выхода прошлой команды. В Linux статус выхода 0 средств, что команда была успешна. Любое другое состояние означало бы, что ошибка произошла.

egrep "^username"/etc/passwd>/dev/null искал бы имя пользователя под/etc/passwd файлом. Если это находит его затем $ статуса выхода? будет равно 0. Если это не найдет это, то статус выхода будет чем-то еще (не 0), следовательно Вы "отзоветесь эхом, не существует".

10
31.08.2011, 12:24
2 ответа

Можно использовать -b опция к ls, который показывает не графические символы escape-последовательностями C-стиля.

8
27.01.2020, 20:03

ls -aq распечатает все имена файлов, с a ? вместо каждого непечатаемого символа. На многих вариантах Unix, ls -AB или ls -Ab (проверьте свою страницу справочника), распечатает восьмеричные Escape. С ls -aq, можно использовать отображенный вывод в качестве шаблона оболочки.

$ ls -Aq
.?OA.tex.pyD0MB
… more stuff …
$ mv -i .?OA.tex.pyD0MB weird-file
$ less weird-file

Другой способ достигнуть имя файла так или иначе состоит в том, чтобы использовать завершение Вашей оболочки: войти mv . и нажимайте Tab неоднократно, пока странное имя не будет вставлено.

1
27.01.2020, 20:03
  • 1
    ls -q не показал файл тогда как ls -b сделал. возможно, потому что его имя файла не было [weird-character]OA.tex но действительно `printf %b '\033OA'`.tex –  luxifer 01.09.2011, 08:50
  • 2
    @luxifer Там является a . в начале имени файла, таким образом, Вам нужно ls -Aq или ls -aq. И если Вы используете подстановочные знаки оболочки, необходимо сделать . явный: * не будет включать файл, но .* будет. –  Gilles 'SO- stop being evil' 01.09.2011, 09:31
  • 3
    не не был! Вывод, который я отправил, был от rsync, и это был конец строки. Rsync сначала копии в $DESTINATION/.$FILENAME прежде чем это переместит файл в, он - корректное имя. Для этого в источнике файл имел нет . в начале его имени. Кроме того, как сказано, ls -q не показал бы файл тогда как ls -b сделал. –  luxifer 05.09.2011, 09:23

Теги

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