В какой-то момент я сделал что-то сумасшедшее, создав файл, называемый -rf
моей файловой системой.
Теперь я не могу понять, как его удалить ...
Я пробовал:
rm "-rf"
rm \-rf
Они просто выходят немедленно, аааа!
Кто-нибудь знает, как удалить этот файл? Желательно без случайной очистки всей моей папки.
rm
получить файл, вызываемый-rf
из вашей системы, не помня точный синтаксис!rm
(в itargc
иargv
). Таким образом, оба эти результата приводят к массиву,["rm", "-rf"]
который передаетсяrm
, который делает то, что вы ожидаете.*
в папку. Включите также одно имя-rf
и посмотрите веселье ;-)mkdir './-rf '
(ls --classify, обычное значение по умолчанию в псевдониме оболочки, добавит /)Ответы:
Или же
источник
getopt
--
, означает большинство современных инструментов Linux.Другой вариант:
... если ваш текущий каталог является тем, где находится файл.
источник
Или вы всегда можете отредактировать каталог, в котором он находится, и таким образом удалить файл.
а затем просто удалите строку с файлом (с помощью D, dd не будет работать).
источник
vim
был ли режим Dired. Понятно, что редактирование самого каталога в текстовом редакторе не рекомендуется и не возможно без реального экспертного прыжкового прыжка. Обратите внимание, что этоemacs
будет работать, и по той же причине.Универсальный метод для удаления странных имен файлов заключается в использовании.
найти номер индекса файла и затем использовать.
Не нужно помнить все особые случаи.
источник
find
что мог удалить файлы.Несмотря на то, что я знаю об уловке «rm - -filename», обычно, когда я каким-то образом получаю файл с начальным именем, которое я хочу удалить, я запускаю файловый менеджер с графическим интерфейсом и делаю это оттуда, чтобы исключить возможность ошибок.
источник
Если вы просто хотите быть уверены:
источник
На тот случай, если вы работаете в не-GNU Unix, где вы чувствуете, что вернулись к каменному веку (нет
--
синтаксиса, нет-inum
переключателя для поиска, нет команды unlink, ваш редактор отказывается редактировать каталоги и т. Д. И т. Д.), Вы все равно можете помочь себе:Это заставит find направить всех потенциальных кандидатов в rm, что, в свою очередь, будет запрашивать разрешение / отказ для каждого файла, который он передает.
Если вы
rm
даже не поддерживаете-i
коммутатор (HP-UX 10.2 на PA-RISC 1.1?), Просто будьте осторожнее:источник
find
?Поддерживая ответ Джлидева , я бы улучшил:
быть в интерактивном режиме и запросить подтверждение, чтобы вы могли быть уверены, что вы удаляете. (хотя решение в порядке. Это просто для вашего спокойствия)
На самом деле, даже используйте это:
чтобы быть уверенным, что вы не используете псевдонимы.
источник
Как уже было предложено, я всегда использовал синтаксис
когда мне пришлось удалить файл с чертой в качестве префикса, потому что - говорит команде, что она не ищет какой-либо другой параметр, а только имена файлов.
Помня об этом, чтобы защитить мою важную папку от случайного удаления файла, я использовал для создания пустого файла с именем просто -i, который обычно помещается вверху списка файлов при разрешении поиска *. Итак, команда
когда извиняется в моей защищенной папке, взорвется во время выполнения команды:
и оболочка, вместо того, чтобы немедленно удалить все, перестает запрашивать подтверждение (как требует опция -i).
источник
-i
взлома имени файла - «Я» был настроен скептически, но это проверяется!В прошлый раз у меня была эта проблема, я решил ее с помощью:
питон
импорт ОС
os.remove ( "- ВЧ")
источник
Мартин Клейтон прав.
Это очень просто и логично. Если параметры существуют, это всегда
-XXX
или--CCCC
так, если вы введете./
или полный путь-rf
не может рассматриваться как параметр и будет рассматриваться как обычная строка.Работает со "всеми" странными именами файлов.
источник
rm - -rf большинство инструментов GNU принимают - как маркер конца опций
источник