Я только что создал alias rm="rm -I"
, чтобы предотвратить случайную команду rm
.
-I prompt once before removing more than three files, or when removing recursively.
Less intrusive than -i, while still giving protection against most mistakes
Но это не работает. Я не получаю никаких подсказок при использовании rm -rf
При чтении справки снова, Вы будете видеть, что она говорит предыдущий --interactive
. Это означает, что можно добавить -I
после всех других аргументов (как в конце строки) и это будут соблюдать снова!
Чтобы сделать это, Вы нуждаетесь в функции вместо псевдонима, но просто засовываете это где-нибудь в Ваш .bashrc
(и др.) и Вы являетесь золотыми:
function rm { /bin/rm "$@" -I; }
Возможно, более безопасный метод, чем даже это использует trash-cli
trash-put
команда. Это поместит вещи в каталог мусора Вашей учетной записи, который может обычно рассмотреться/восстановиться/опустеться. Это также имеет макет -r
, -f
и, -i
аргументы, таким образом, это делает идеальный псевдоним возможным:
alias rm="trash-put"
Проблема здесь в том, что -f
заставляет rm
игнорировать любую интерактивную команду:
`-f'
`--force'
Ignore nonexistent files and missing operands, and never prompt
the user. Ignore any previous `--interactive' (`-i') option.
Источник: info coreutils 'rm invocation'