Кожного разу, коли я rm
одноразово обробляю декілька предметів, і навіть є найменша можливість, щоб візерунок розширився до більшого, ніж я очікував, я завжди намагаюся запам'ятати, щоб додати -i
, але (звичайно) я можу забути і випадково підірвати щось корисне. Деякі люди намагаються вирішити цю проблему псевдонімом, наприклад, alias rm='rm -i'
але я ненавиджу ідею зробити rm завжди інтерактивним, тому що тоді я ввійду в звичку використовувати -f
весь час, що, очевидно, переможе всю мету.
Що я хотів би зробити, це rm
використовувати лише -i
тоді, коли я використовую глобус, і, -f
звичайно, переосмислюю -i
, так що я все-таки можу видувати цілі каталоги зі звичайними rm -rf junk
.
Тому rm *blah*
справді було б, rm -i *blah*
але rm blah
працювало б точно так, як набрано.
Якщо є різниця в тому, як це може бути досягнуто в різних оболонках, я виберу відповідь, яка надає методи як для bash, так і для zsh над відповідями, які охоплюють лише те чи інше.
Примітка : я насправді не впевнений, що це обов'язково хороша ідея; Я просто запитую, чи це можливо. Якщо ви вважаєте, що це дурна думка, я би дуже радий почути міркування, що стоять за вашою думкою, але, будь ласка, не публікуйте таких коментарів у полі відповідей . Реальні відповіді або підказують мені, як це зробити, або пояснюють, що / чому це неможливо (або можливо запропонувати альтернативний метод отримання аналогічного результату). Але якщо ви хочете сказати мені, чому це німець, будь ласка, опублікуйте як коментар. Я підтримаю обґрунтовані коментарі, навіть якщо я не згоден з висновком.
noglob
, наприклад, псевдонімом rm до noglob my-rm
, а потім мати my-rm сценарій, який перевіряє глобальність, розширює його та передає -i чи ні. Не впевнений, не знаю zsh.
myrm
і дозволити цьому сценарію робити те, що вам подобається.
rm -I
подібне,-i
що запускається лише тоді, коли-r
передано більше трьох файлів або передано. Вbash
, використовуйтеCtrl-x *
поєднання клавіш , щоб розширити Glob і перевірити це самостійно.