2

У меня есть странный файл в моем домашнем каталоге с именем \e[m . Я использую Linux. Как я могу удалить его, потому что я пробовал rm но он говорит, no such file or directory found?

5 ответов5

13

Если ни один из других ответов, опубликованных здесь, не работает, вы всегда можете попробовать удалить файл, основанный на его inode.

Для этого:

  1. Найдите индекс файла, выполнив команду ls -i . Предположим, что номер индекса равен 123456 для \e[m .
  2. Удалите файл по номеру его индекса : запустите либо find -inum 123456 -delete либо find -inum 123456 -exec rm {} \; ,
3

Честно говоря, проще всего было бы использовать файловый менеджер, который обходил бы любую оболочку.

Используя оболочку, я бы попробовал использовать систему завершения оболочки (при условии, что вы используете оболочку с такой). Подобно rm [TAB] , если ваша оболочка дает вам меню и позволяет вам выбирать из меню или циклически проходить по нему, вы должны иметь возможность получить завершение, то есть текстовое представление, которое ваша оболочка распознает.

1

Возможные способы:

rm \\e\[m

или же

rm '\e[m'

или же

rm "\\e[m"
1

Если \e является escape-символом (код ASCII 27), и вы используете оболочку Bash, вы можете попробовать:

rm $'\e[m'
0

Вы можете использовать расширение glob. попробуйте ls *[[]m , и если это только вернет этот файл, то вы можете спокойно выполнить rm *[[]m .

Если файл с ошибками не указан в приведенной выше команде ls , он, безусловно, содержит escape, и 'm' на самом деле не является литералом m (и / или [ не является литералом [)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .