2017-03-16 6 views
5

私は削除検索を使用してRMを持つファイルとxargsの

rm file.txt 

または

rm *.txt 

を行うと、私はrm-fオプションを指定しなかったので、私は、各ファイルの入力を求めています。私はこれを行うとき

しかし:

find . -type f -name '*.txt' | xargs rm 

ファイルが確認なしで削除されます。

これにはどのような論理がありますか?いくつかの文書でその理由を見つけることは可能ですか?なぜこれが当てはまるのか説明できません。

+2

あなたが記述している動作は 'rm -i'の動作です。 rmコマンドのシェルにエイリアスが設定されていますか? 'エイリアスrm'は出力を与えますか? – Harald

+0

'alias rm'は出力' rm -i'を出力しますので、それを説明します。ありがとう – Martin

答えて

5

「rm -i」へのrmコマンドのエイリアスが設定されています。あなたは

rm file.txt 

または

rm *.txt 

のようにコマンドを直接呼び出す場合はそのためエイリアスが展開されます。あなたは

find . -type f -name '*.txt' | xargs rm 

のようにxargsのとそれを呼び出す場合は、RMはxargsのために、単純な文字列引数として渡され、後にシェルのエイリアス置換することなく、xargsはによって呼び出されます。 エイリアスは〜/ .bashrcに定義されている可能性があります。

関連する問題