回答:
find . -name *foo* | xargs -r ls -lah
うまくいくはずです。
-exec +(または-exec \;)を使用することです。xargsこの-0オプションで使用するのは安全です。つまり、パイプするコマンドxargsをNULLバイト(\ 0)で区切るために指定する必要があります。でfindあなたはそれを行うことができます-print0。xargsの-0およびfindの-print0は標準ではありませんが、-execは標準であるため、移植性が問題になる場合は、-execでfindを使用してください。
これを使用します:(lsは並べ替えることができ、スペースまたは異常な文字を含むファイル名で動作します)
find . -name *foo* -print0 | xargs -0 ls -lah
「-print0」は、などのファイル名の後にnullが続くfile foo 1出力を取得することを意味しますfind。xargsの「-0」引数は、この種の入力を想定しているため、スペースを含むファイル名はlsコマンドに正しくパイプされます。
xargs建設は、より良いよりも、いくつかの方法であるfind etc -exec ls {} \;ファイル名のすべてがに送信されますので、lsあなたは、タイムスタンプ(使用して、それらすべてをソートしたいのであれば、一度ls、)この作品のようなものを:
find . -iname *pdf -print0 | xargs -0 ls -ltr
NetBSDシステムでは、「-printx」もオプションです(これは私にとって有用な議論のようですが、xargs -0があり、それでかまいません)。
find . -name *foo* -printx | xargs ls -lah (Ubuntu用ではありません)