を使用してzsh
一致しないパターンを選択すると、rm
出力がリダイレクトされても「一致項目が見つかりません」というメッセージが表示されます。
# rm * > /dev/zero 2>&1
zsh: no matches found: *
このメッセージをどのように削除できますか?
ベストアンサー1
この動作は複数の要素によって制御されます。Zshのワイルドカードオプション。デフォルトでは、コマンドラインに一致しないワイルドカード式が含まれている場合、Zshは表示されるエラーメッセージを出力し、コマンドをまったく実行しません。次の 3 つの方法でこの機能を無効にできます。
setopt +o nomatch
何も一致しないワイルドカード式が残り、エラーメッセージが表示されます
rm
( を使用して無効にすることはできますが、-f
望ましくない場合は強制的に削除するので良いことではありません)。setopt +o nullglob
どれとも一致しないパターンは削除されます(したがって効果的に無視されます)。
setopt +o cshnullglob
何も一致しないパターンは削除され、コマンドのすべてのパターンが削除されるとエラーが報告されます。
最後の2つはカバーされていますnomatch
。これらのオプションはすべて設定を解除して設定できますsetopt -o …
。
nullglob
シングルモードは、以下を使用して有効にできます。グローバルN
予選、例えば:
rm -f -- *(N)