![编写“rm”和“rm -i”脚本](https://linux22.com/image/50380/%E7%BC%96%E5%86%99%E2%80%9Crm%E2%80%9D%E5%92%8C%E2%80%9Crm%20-i%E2%80%9D%E8%84%9A%E6%9C%AC.png)
我想创建一个脚本,只要删除三个以上的文件,它就会默认调用rm -i
。我知道它会进入初始化文件,但似乎无法让它工作。
迄今为止:
if [$file -ge 3]; then
rm -i
exit 0
else
rm
exit 1
答案1
@Tim 的答案中给出的函数适用于任何运行 bash 的系统。然而,GNUrm
已经提供了满足您需要的选项(来自man rm
):
-I prompt once before removing more than three
files, or when removing recursively. Less
intrusive than -i, while still giving protec‐
tion against most mistakes
因此,如果您有 GNU rm
(如果您运行的是 Linux,则应该有 GNU),您只需将此行添加到您的/.bashrc
:
alias rm='rm -I'
删除超过3个文件时会提示,但不会对每个文件都要求确认,如果确认操作,所有文件将被删除。
答案2
这对我有用,请将这些行添加到您的~/.bashrc
:
rm() {
if [ "$#" -ge 3 ]; then
command rm -i "$@"
else
command rm "$@"
fi
}
这将创建一个rm
函数,该函数将被调用,而不是/bin/rm
每次执行时都被调用rm
。
"$#"
扩展到传递的参数数量。