Як би ви видалили папку з назвою * в / з 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без проблем видаляти файли, названі ними .


Не вимагається. Ви можете просто уникнути "*", щоб він не розширювався оболонкою, як відповів Серж.
darnir

5
@darnir Вам не потрібно використовувати його, якщо він вам не подобається. Але ви повинні знати, до яких персонажів слід втекти, використовуючи підхід Сержа (розгляньте &), і уникати їх окремо, що може легко стати більше зусиль, ніж цитування одного разу. Тому я вважаю, що окремі втечі є неповноцінними і розмістив цю альтернативу.
Даніель Бек

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

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

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