rm *
と入力するとbashを実行したいと思っていますが、rm
を実行しています。重要なのは、rm part*
などのワイルドカードを使用するたびにrm -i
を実行したくないということです。ここまで来ることができます:bash関数の引数として "*"をキャプチャして比較する方法
rm()
{
if [ "$1" == "*" ]; then
rm -i *
else
rm $1
fi
}
しかし、私はこれが失敗することを知っています。私が欲しい比較は^*$
ですが、私はそれをどのように実装するのか分かりません。
あなた 'rm'関数は' '*すでに展開されているが実行される時まで。 – Paulpro
問題は 'rm'は' * 'を引数として得られないということです。シェルが '*'を引数として展開するファイルの長いリストを取得します。 – chepner
GNU 'rm'は' -I'オプションを持っています。このオプションは3つ以上のファイルを削除するかどうかを尋ねるだけです。 – chepner