19

Я использую терминал на машине с Ubuntu, и есть файл, который я хотел бы удалить. Имя файла \ (просто обратная косая черта).

Теперь обычно я бы просто

rm filename

Однако, если я делаю rm \ то он думает, что я пытаюсь написать многострочную команду.

Как я могу удалить этот файл? Я знаю, что могу просто использовать файловую систему GUI, но это не очень эффективно.

Итак, как я могу удалить (в терминале) файл с именем \?

3 ответа3

47

Используйте rm \\ (избегайте обратной косой черты с другой обратной косой чертой). Обратите внимание, что это также работает аналогично для каталогов с именем \ (используя либо rmdir , либо rm с флагом -r ).

Пример:

>mkdir demo
>cd demo
>touch \\
>ls -l
total 0
-rw-------  1 hennes  users  0 Jul 29 20:25 \
>rm \\
>ls -l
total 0
15

Общая тактика ручного удаления файлов с неудобными символами в именах:

rm -i ./*

Это предложит вам выбрать, следует ли удалять каждый файл в каталоге.

12

Вы также можете отменить связь, ссылаясь на индекс файла

linus ~/test $ touch \\
linus ~/test $ ls -li
total 0
15204561 -rw-r--r-- 1 pat sudo 0 Jul 29 23:03 \
linus ~/test $ find . -inum 15204561 -exec rm -v {} \;
removed `./\\'
linus ~/test $ ls -li
total 0
linus ~/test $ 

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