Похожие вопросы

Запустить скрипт BASH в Cygwin
Bash Изменить Размер Терминала Xterm
Как gzip несколько файлов в один файл gz?
каталоги diff, исключая одну папку внутри
Лучший способ извлечь подстроку в bash
Странная ошибка bash: "ошибка импорта определения функции для "модуля BASH FUNC""
Имейте файл с именем ~ (Тильда) в моем домашнем каталоге
Почему я получаю "rvm: команда не найдена" на Ubuntu?
Копирование нескольких файлов в Linux
Переименование файлов с помощью текстового файла [закрыт]
Запуск jpegoptim в cronjob раз в неделю, на CentOS из cPanel, только для файлов, добавленных в течение прошлой недели?
Я добавил новый путь в список путей, но не смог выполнить программу из любого места linux
Как получить pid запущенного процесса с помощью одной команды, которая анализирует выходные данные ps?
Скрипт Bash выполняется, но команда' until ' не найдена
Как распечатать команду bash history и добавить ее в файл?

Как удалить файл с именем, начинающимся с "- r", используя cli [дубликат]

этот вопрос уже есть ответ здесь:

Я время от времени создавал файлы с нечетными именами, например

$ls -rthl
$-rw-r--r--  1 shamil hep  290 Aug 13 11:58 -rf

и интересно невозможно удалить этот файл с

rm -f -rf

Я знаю, что мне нужно избежать специальных символов, как "-", так что вопрос ясен. Раньше я знала решение, но с тех пор забыла.

Как правильно удалить его?

Я пробовал такие вещи

rm -f -rf

но безрезультатно.

5
задан Chikipowpow
источник

3 ответов

-- переключатель означает: конец флагов, все после того, как предполагается, имя файла. Так что вы можете сделать:

rm -- -rf

включить полный путь к файлу тоже работает:

rm /full/path/to/-rf

на самом деле, это немного смешно, но эта командная строка может дать вам ответ:)

$man rm | cat | grep -B4 -A3 -- "rm --"

To remove a file whose name starts with a `-', for example `-foo', use 
one of these commands:

rm -- -foo
rm ./-foo
13
отвечен Paulo Bu 2013-12-17 20:23:08
источник

можно сделать

rm -rf ./-rf

это сделает так, что -rf не начинается с -.

8
отвечен Mad Physicist 2013-12-26 21:13:00
источник

иначе:

find -name "-rf" -exec rm {} \;
2
отвечен BMW 2013-12-17 23:51:01
источник

Другие вопросы bash command-line linux rm