Как бы вы удалили папку с именем * in / from bash?


8

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


2
Технически, rm *будет работать, чтобы удалить эту папку.
полковник Паник

Ответы:


7

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

rm /\*

1
Это не сработает - это каталог.
naught101

1
Тогда используйте 'rmdir / \ *' вместо этого. Другой вариант - использовать 'rm -rf / \ *'. Но делать последнее опасно, если сделаешь ошибку.
Серж

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без проблем.


Не требуется. Вы можете просто экранировать '*', чтобы оболочка не раскрылась, как ответил Серж.
Дарнир

5
@darnir Вам не нужно использовать его, если он вам не нравится. Но вы должны знать, каких персонажей следует избегать при использовании подхода Сержа (подумайте &), и избегать их по отдельности, что может легко стать большим усилием, чем один раз процитировать. Поэтому я считаю, что индивидуальный побег уступает и опубликовал эту альтернативу.
Даниэль Бек

3
@ Серж, я не говорю, что твой ответ плохой. Это делает работу, и было принято . Однако, если есть несколько (достаточно разных) способов добиться чего-то с разными плюсами и минусами, не стесняйтесь перечислять их все. Они могут работать не во всех ситуациях, поэтому хорошо иметь альтернативы на выбор. Также обратите внимание, что пользователи с похожими (не идентичными) проблемами могут прийти к вопросу от Google. Это также хорошая идея, чтобы расширить сферу, если это приводит к вопросам, которые могут помочь большему количеству людей. Написание более широких ответов - это только начало.
Даниэль Бек

1
У меня не было цели, чтобы все мои ответы были приняты и с самой большой болью. Я провожу пару дней (эти выходные) с некоторыми из этих сайтов. Первое впечатление было то, что я могу поделиться с людьми своими знаниями, поэтому я начал давать ответы. На ТАК я получил 760 баллов за эти три дня. Да, некоторые мои ответы не были высокого качества с разных точек зрения. Но все они были правы. Но теперь я вижу, что большинство людей, которые задают вопросы здесь - это школьники, которые не хотят тратить ни секунды, чтобы найти решение самостоятельно. Зачем я буду проводить время?
Серж

1
@Serge Не уверен, что ваши комментарии о. Из того, что я увидел после того, как вы упомянули об этом, вы внесли впечатляющий вклад в создание сайтов. Если есть что-то, с чем я могу вам помочь в использовании сайтов, или что-то еще, что вы хотите обсудить, не стесняйтесь пинговать меня в чате. Я нахожусь в UTC + 2, так что вы можете не получить ответ очень скоро. Что касается «новичка» вопросы: Имейте в виду , что некоторая информация не легко обнаружить. Чтение полной bashсправочной страницы занимает некоторое время, если вы не знаете, что искать.
Даниэль Бек
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.