都内SEのプログラミング勉強と雑記

2008年より都内でSEをしてます。業務システムをリプレイスし続けてきました。ここでは主にjavaやその周辺技術関連を紹介予定。学ぶことリスト:https://docs.google.com/spreadsheets/d/1G4lUqbHxsMf4PGgeRVe1ZL3JTOjlSTrqsJYe1CKz9UY/edit?usp=sharing

findコマンドの-execオプションでよく間違う記述ミス

f:id:object1985:20170514160846j:plain

findコマンドの-execオプションでよく間違う記述ミスについて。

久しぶりに find コマンドを使用して -exec オプションで詳細もみようと以下のように打つと・・・

find . -name hogehoge -exec ls -l {}¥;

動かない。

何でだ?

ググってみると「{}」は引数「-exec [command]」で指定したコマンドの引数となるため

スペースで区切らないといけないとのこと。

つまり

find . -name hogehoge -exec ls -l {} ¥;

と{}と¥;の間にスペースが必要でした。これだけで10分程は悩んでしまった。

まあxargsの方が好きだもんね。

find . -name hogehoge | xargs ls -l

こっちの方が | パイプ渡しできるし検索結果が1000件以上あっても

いい感じに繰り返し実行してくれるのでエラーとならないので

特段理由がなければxargsでやっていきます。そうします。

follow us in feedly