OSX 上缺少 rm -I 选项的解决方法?

OSX 上缺少 rm -I 选项的解决方法?

我想在 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

相关内容