А как насчет псевдонимов? Набрав псевдоним в командной строке, вы увидите все определенные псевдонимы. Я бы посоветовал добавить что-то вроде:
alias rm='rm -i'
Определите его в ~ / .bashrc (чтобы вы могли удалить его в будущем или изменить в соответствии с вашими потребностями).
[mal@localhost ~]$ touch 123
[mal@localhost ~]$ rm 123
[mal@localhost ~]$ touch 123
[mal@localhost ~]$ rm -i 123
rm: remove regular empty file ‘123’? y
[mal@localhost ~]$
ИЛИ
Вот еще одна уловка.
Создайте файл с именем -i
в этом каталоге, используя touch - -i
или touch./ -i
Теперь попробуйте rm -rf *
:
[mal@localhost stack]$ touch {1..10}
[mal@localhost stack]$ touch -- -i
[mal@localhost stack]$ ls
1 10 2 3 4 5 6 7 8 9 -i
[mal@localhost stack]$ rm -rf *
rm: remove regular empty file ‘1’? n
rm: remove regular empty file ‘10’? n
rm: remove regular empty file ‘2’? n
Здесь *
расширит -i
в командную строку, так что ваша команда в конечном итоге становится rm -rf -i
. Эта команда отобразится перед удалением.
ИЛИ
Используйте safe-rm
Safe-rm - это инструмент безопасности, предназначенный для предотвращения случайного удаления важных файлов путем замены / bin / rm оберткой, которая проверяет указанные аргументы против настраиваемого черного списка файлов и каталогов, которые никогда не должны быть удалены.
Пользователи, которые попытаются удалить один из этих защищенных файлов или каталогов, не смогут это сделать, и вместо этого им будет показано предупреждение
:
$ rm -rf / usr {{ 1}} Пропуск / usr
Предполагая, что значения являются строго действительными числами с основанием 10 (, если нет, очистить их):
$ cat./script.sh
#!/bin/bash
while IFS='|' read a b
do until ((a>b))
do printf '%d\n' "$((a++))"
done
done
$./script <infile >outfile
Сawk
:
awk -F'|' '{for (i = $1; i <= $2; i++) print i}' < input > output