У rm есть флаги -i
и -I
для подтверждения перед каждым удалением. В прошлом некоторые дистрибутивы включали их по умолчанию. Это ужасная идея. Дайте пользователю слишком много диалогов подтверждения для нормальной работы, и они начнут их обычное подтверждение. Это просто сдвигает требование "быть осторожным" (всегда красным флажком) в новый и более раздражающий диалог. "Да. Да. Да. Да! ДА! Черт возьми, тупой компьютер, просто удали файлы YESYESYESYESYES - CRAP, я не имею в виду! NOOOOOOO!«Это проблема диалога« Да, но я имел в виду нет ». Этот ответ дает наглядное объяснение того, почему диалоги подтверждения приходят не вовремя.
Тип ошибки, которую вы описываете, - это промах, «выполнение действия, которое не было тем, что было задумано». Пользователь обычно сразу распознает ошибку и точно знает, как ее исправить. К сожалению, Unix не дает пользователю возможности, rm немедленно удаляет файл. Любая другая операционная система решает эту проблему, позволяя удалять, по крайней мере, на некоторое время, с помощью корзины.
Существуют различные системы мусора для Unix, и этот ответ полон предложений.
Вопрос в том, чтобы псевдоним rm или нет в псевдоним rm. Плюсы для алиасинга рм ...
- Вы не можете забыть об использовании альтернативы rm.
Минусы для псевдонимов ...
- Вы можете полагаться на это в системах, в которых этого нет.
- Может вызвать проблемы, когда диск почти заполнен.
- Нужна инфраструктура, чтобы периодически очищать мусор.
- Должны быть уверены, что не мешают ожидаемому поведению rm в программах.
- Может не полностью подражать рм.
Если вы будете следовать первому аргументу слишком далеко, вы будете использовать vi (не vim, vi), csh (не tcsh, csh) и другие устаревшие утилиты, потому что они доступны повсеместно. Тем не менее, существует опасность перенастройки вашей среды. Я предпочитаю брать с собой свои коммунальные услуги и делать это как можно проще. YMMV.
Два и три являются техническими проблемами. Они могут быть решены с помощью умного жнеца, который проверяет размер мусора и периодически убирает вещи, как в случае с жнецом. Это может быть задание cron или более умная версия, в которой можно использовать различные инфраструктуры событий файловой системы, доступные во многих дистрибутивах Linux для настольных компьютеров. Это не просто, а еще сложнее сделать эффективно. Лучше найти существующую систему, чем пытаться создать собственную.
С четвертым можно разобраться, сделав ваш новый rm псевдонимом оболочки, alias rm='trash'
, тогда это не повлияет на программы.
Пятая проблема, которую я оставляю читателю для решения. У rm не так много переключателей.