Как избежать побега персонажа в bash?

#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. Спасибо. Мне не приходило в голову пытаться удалить файл, не экранируя ни одного символа. Иногда ответ находится прямо у вас перед глазами.