rm має -i
і -I
прапори для підтвердження перед кожним видаленням. Раніше деякі дистрибутиви включали їх за замовчуванням. Це жахлива ідея. Дайте користувачеві занадто багато діалогів підтвердження для звичайних операцій, і він почне звично їх підтверджувати. Це просто зміщує вимогу "бути обережним" (завжди червоним прапором) на новий і більш дратівливий діалог. "Так. Так. Так. Так! Так! Боже, чорт забирай, дурний комп'ютер, просто видаляй файли YESYESYESYESYES - КРАП Я НЕ МАЮ! NOOOOOOO!" Це проблема діалогу "Так, але я мав на увазі, що немає". Ця відповідь дає наочне пояснення того, чому діалоги підтвердження приходять не в той час.
Помилка, яку ви описуєте, - це ковзання , "виконання дії, яка не була такою, що була задумана". Користувач зазвичай негайно розпізнає помилку і точно знає, як її виправити. На жаль, Unix не дає користувачеві можливості, rm видаляє файл негайно. Кожна інша операційна система вирішує цю проблему, дозволяючи видалити видалення, принаймні на деякий час, використання кошика.
Для Unix існують різні системи сміття, і ця відповідь повна пропозицій .
Питання в псевдонімі rm чи не в псевдонімі rm. Плюси до згладжування RM ...
- Ви не можете забути про використання альтернативи rm.
Мінуси для згладжування RM ...
- Ви можете покластися на нього в системах, у яких його немає.
- Може виникнути проблеми, коли диск майже повністю заповнений.
- Потрібна інфраструктура для періодичного спорожнення сміття.
- Потрібно бути впевненим, щоб не заважати очікуваній поведінці rm у програмах.
- Можливо, не повністю імітують rm.
Якщо ви дотримуєтесь першого аргументу надто далеко, ви закінчуєте використання vi (не vim, vi), csh (не tcsh, csh) та інших застарілих утиліт, оскільки вони доступні загальнодоступно. І все-таки існує небезпека перенастроювати своє оточення. Я вважаю за краще брати з собою комунальні послуги і робити це якомога простіше. YMMV.
Два та три - це технічні проблеми. Їх можна вирішити за допомогою розумної роботи з жаткою, яка перевіряє розмір сміття та періодично очищає речі, подібно до tmpreaper . Це може бути завданням cron, або більш розумна версія може використовувати різні інфраструктури подій файлової системи, доступні у багатьох настільних дистрибутивах Linux. Це не просто, а ще складніше зробити це ефективно. Краще знайти існуючу систему, ніж намагатися зробити власну.
Четверте може бути вирішено, зробивши ваш новий rm псевдонімом оболонки alias rm='trash'
, тоді це не вплине на програми.
П’яте - це проблема, яку я залишаю читачеві вирішити. rm не має багато комутаторів.
zsh
абоbash
) я скоріше скористаюся звичкою натискати клавішу вкладки (щоб запустити автоматичне завершення) перед натисканням клавіші повернення