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

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

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

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

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

rm -f -rf

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

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

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

rm -f -rf

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

4
задан Chikipowpow
01.01.2023 10:10 Количество просмотров материала 3425
Распечатать страницу

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 2023-01-02 17:58

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

rm -rf ./-rf

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

8
отвечен Mad Physicist 2023-01-02 20:15

иначе:

find -name "-rf" -exec rm {} \;
2
отвечен BMW 2023-01-02 22:32

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх