コマンドに渡すオプションをファイルに記述する

sasa+1 Blob Blame History

findコマンドでファイルを検索するときに、特定のディレクトリを除外するなどの条件を追加していくとオプションが非常に長くなると思う。

$ find . -type d \( -name node_modules -or -name bower_components \) -prune -or -type f -name '*.js' -print

これをなんとか短くしたく、可能なら除外条件などはほぼ変更しないのでファイルに記述できないかと思い調べた。


command line arguments from a file content - Stack Overflow

コマンド置換でcatもしくは標準入力にファイルを渡せば可能なようだ。

オプションを書いたファイルを.findrcとして用意する。

-type d
(
  -name node_modules
  -or
  -name bower_components
)
-prune
-or

.findrcをコマンド置換で渡す。

$ find . $(< .findrc) -type f -name '*.js' -print

これで検索条件をファイルに記述してfindコマンドを短く書く事ができた。

これならfind以外のコマンドにも応用できると思う。