3つ以上のファイルが削除されるたびに、デフォルトで呼び出されるスクリプトを作成したいと思いますrm -i
。初期化ファイルに入ることを知っていますが、うまく動作しないようです。
これまで:
if [$file -ge 3]; then
rm -i
exit 0
else
rm
exit 1
答え1
@Timの回答で提供されている機能は、bashを実行しているすべてのシステムで機能します。しかし、GNUはrm
すでにあなたのニーズに合ったオプションを提供しています(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を実行している場合はそうです)、次の行を次の行に追加するだけです/.bashrc
。
alias rm='rm -I'
3つ以上のファイルを削除するとメッセージが表示されますが、各ファイルを確認するように求められません。ジョブを確認すると、すべてのファイルが削除されます。
答え2
これは私にとって効果的でした。次の行をあなたの行に追加してください~/.bashrc
。
rm() {
if [ "$#" -ge 3 ]; then
command rm -i "$@"
else
command rm "$@"
fi
}
これにより、実行されるたびに呼び出されるrm
代わりに呼び出される関数が生成されます。/bin/rm
rm
"$#"
渡された引数の数に拡張されます。
答え3
簡潔でありながら移植可能なアプローチは次のとおりです。
rm() {
command rm $([ ${#} -gt 3 ] && echo \-i) "$@"
}
rm
ただし、セマンティクスを変更しないことをお勧めします。返信するもっと学ぶ。