8

Допустим, у меня была папка с именем * в / . Я знаю, что такие общие команды, как rm -rf * не будут работать. Любая помощь?

2 ответа2

14

Вы можете заключить в кавычки аргументы, чтобы предотвратить обработку оболочкой.

rm -r '/*'

Проверьте это безопасно с помощью ls (в папках, содержащих файлы):

$ ls '*'
ls: *: No such file or directory

В этом случае двойные кавычки также будут работать, но если в них будет задействован $ , они не будут, так как оболочка предположит, что это переменная:

$ ls "foo$bar"
ls: foo: No such file or directory
$ ls 'foo$bar'
ls: foo$bar: No such file or directory

Для GNU rm вы также можете добавить -- перед аргументами имени файла, чтобы предотвратить их анализ в качестве аргументов. Это позволит вам без проблем удалять файлы с именем -rf .

7

используйте эту короткую команду:

rm /\*

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .