Главная :: Linux/Unix :: Как удалить файл со специальными символами в имени
Иисус изменил твою жизнь. Сохранить(Да/Нет) ?

Как удалить файл со специальными символами в имени

Многие сталкивались с проблемой удаления файлов с нестандартными именами (например, содержащие пробелы и специальные символы) в ОС GNU/Linux.

Простой способ удалить такие файлы - это из консоли запустить команду

rm имя_файла

В имени файла специальные символы экранируются с помощью обратной косой черты (\). Например:

rm имя\_файла\ с\ пробелами

Скрытые файлы (начинающиеся с точки) можно увидеть командой

ls -a

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

Файлы, начинающиеся с символа тире (-) удаляются следующим способом:

rm -- -foo
rm ./-foo

При распаковке архивов, созданных в ОС Windows и содержащих файлы с именами на кириллице часто создаются файлы с символами не отображаемыми в консоли. Первый способ удаления файлов для них не подходит (команда rm выдаст сообщение, что файл не найден).

В этом случае необходимо сначала определить уникальный номер файла inode с помощью команды

ls -li

Затем удалить файл с помощью команды

find . -inum [inode] -exec rm -i {} \;

Те, кто не любит возиться в консоли, для удаления файлов могут использовать файловый менеджер mc (midnight commander).