OSXでrm -Iオプションが欠落している場合の回避策は何ですか? [コピー]

OSXでrm -Iオプションが欠落している場合の回避策は何ですか? [コピー]

OSXでこれをやりたいです。

alias rm="rm -I"

GNU rmでは、これはrm再帰的であるか、3つ以上のファイルを削除するとメッセージが表示されますが、1つまたは2つのファイルのみを削除するとメッセージは表示されません。ただし、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

おすすめ記事