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

inconvenient special files delete rm

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

Многие сталкивались с проблемой удаления файлов с нестандартными именами например, содержащие пробелы и специальные символы в ОС 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.