Сегодня я впервые увидел возможность частичного случайного удаления домашнего каталога коллеги (2 часа потеряны в критической фазе проекта).
Я был достаточно обеспокоен этим, чтобы начать думать о проблеме и о возможном решении.
В его случае файл с именем '~' каким-то образом попал в тестовую папку, которую он после удаления удалил с помощью rm -rf ... когда rm прибыл в файл, bash развернул его в своей домашней папке (ему удалось CTRL-C). почти вовремя).
Подобная проблема может возникнуть, если у вас есть файл с именем '*'.
Моей первой мыслью было предотвратить создание файлов с «опасными именами», но это все равно не решило бы проблему, так как mv или другие ситуации могут привести к опасной ситуации.
Второй мыслью было создание слушателя (даже не знаю, возможно ли это) или псевдонима rm, который проверяет, какие файлы он обрабатывает, и находит ли он опасный, пропускает отправку сообщения.
Нечто похожее на это:
- принять все непараметрические аргументы (чтобы получить файлы, которые нужно удалить)
- цикл на этих предметах
- проверить, равен ли текущий элемент опасному элементу (например, '~' или '*'), не знаю, работает ли он, на данный момент элемент уже расширен или нет?
- если это так, эхо сообщения, ничего не делать с файлом
- продолжить итерацию
Третья мысль: кто-нибудь уже сделал или имел дело с этим? :]