Как удалить файл, начинающийся с тире

Удалить файл с тире в именаРабота с файлами, имена которых начинаются с тире, требует осторожности. Символ тире () часто используется в завершении команд для ссылки на stdin или stdout. И в этом нет ничего особенного, ни в части файловой системы, ни в части ядра нет ограничений на использование символа тире.

Сложности могут возникнуть при попытке удалить файл, имя которого начинается с тире. Обычный прием с командой rm здесь не пройдет:

rm -f -myfile
rm: invalid option -- t

Все дело в том, что shell использует тире для передачи параметров командам, в данном случае rm. Решением данной проблемы является использование двойного тире после указания всех опций:

rm -f -- -myfile

Когда shell встретит двойное тире, он перестанет искать опции и примет все остальные данные за параметр, в данном случае — имя файла для удаления.

Другим решением данной проблемы является следующий способ:

rm -f ./-myfile

Данный способ работает, так как выражение ./ предшествует тире в имени файла и знаменует начало параметра.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *