我想在 OSX 上这样做:
alias rm="rm -I"
在 GNU rm 中,这意味着rm
如果是递归的或者删除三个或更多文件时会提示,但如果只是删除一两个文件则不会提示。然而,OSX (Mavericks) rm 不支持这一点。
是否有解决方法rm
,以便在删除多个文件时提示一次,但不会提示单个文件或批量删除中的每个文件?
答案1
链接的答案给了我一个良好的开端,但有点简单化 - 如果你有一个匹配 3 个文件的 glob,它就会触发,但如果你正在执行rm -rf foo
.
所以这对我有用~.bash_profile
:
rmf() {
if [ "$1" == "-rf" ]; then
read -r -p "Sure you want to delete '${2}' [y/N]? " response
if [[ $response =~ ^(yes|y| ) ]]; then
command rm "$@"
fi
else
command rm "$@"
fi
}
alias rm=rmf