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