find で空白を含んだパスに対して検索を実行し、その結果を xargs に渡しても思うような結果が得られない。どうしてかというと、xargs は標準入力から空白または改行で区切られた文字列群を読み込むから。パスに含まれた空白が xargs に区切り文字として解釈されてしまう。 % ls "Foo Bar" hoge1.txt hoge2.txt % find "Foo Bar" -name "*.txt" | xargs grep "Hello" grep: Foo: No such file or directory # "Foo" で一つ目の入力として捉えられている grep: Bar/hoge1.txt: No such file or directory # "Bar/hoge1.txt" で二つ目の入力として捉えられている grep: Foo: No such file or