要約:複数のパターンを一致させるために-print0
オプションfind
と-o
オプションを正しく組み合わせる方法は? (ユースケースが配信されますxargs -0
)
例:
find . -print0 -name "File*.dat" -o -name "Data*.txt"
find . -print0 -name "File*.dat" -o -print0 -name "Data*.txt"
両方とも戻るファイルごとディレクトリに。
find . -name "File*.dat" -o -name "Data*.txt" -print0
このリターンただ2番目のパターン()Data*.txt
に一致するファイル。
これを正しく実行するにはどうすればよいですか、なぜこれが起こりますか?
ベストアンサー1
引用問題とグループ化の問題があります。"
ワイルドカードマッチングのためにシェルを招待するには、「」を使用します。一致するファイルがある場合、または現在のディレクトリにある場合は、ワイルドカード文字が置き換えられます。代わりに" '
"を使用してください。
グループ化は、()
シェルエスケープを必要とする角括弧 ""で行われます。
あなたの命令は次のとおりです。
find . \( -name 'File*.dat' -o -name 'Data*.txt' \) -print0
読むman find
。