#bash #shell #escaping
Вопрос:
Когда я делаю ls
запрос в свой каталог, он показывает файл с именем «$’3333». Как я понял, это был escape-символ ASCII, нажатый дважды. Я хочу удалить его с помощью rm, но я не могу избежать символов. Только через файловый менеджер я могу удалить его.
Комментарии:
1. Это ведущая двойная кавычка в названии?
2.
rm $'3333'
?3. @Shawn: это две одиночные кавычки.
ls
на самом деле это показывает именно так.
Ответ №1:
Что ж, вы должны уметь использовать эту команду:
rm
Более подробную информацию о том, как $'...'
это работает, можно найти здесь.
Обратите внимание, что ls
может отображаться файл с именем $'3333'
как ''$'3333'
. Хотя это не имеет большого значения, rm ''$'3333'
также будет работать нормально, так как две ведущие одинарные кавычки просто образуют пустую строку.
Комментарии:
1. Спасибо. Мне не приходило в голову пытаться удалить файл, не экранируя ни одного символа. Иногда ответ находится прямо у вас перед глазами.
3333'
Более подробную информацию о том, как $'...'
это работает, можно найти здесь.
Обратите внимание, что ls
может отображаться файл с именем $'3333'
как ''$'3333'
. Хотя это не имеет большого значения, rm ''$'3333'
также будет работать нормально, так как две ведущие одинарные кавычки просто образуют пустую строку.
Комментарии:
1. Спасибо. Мне не приходило в голову пытаться удалить файл, не экранируя ни одного символа. Иногда ответ находится прямо у вас перед глазами.