何故動かないか結構困ったのでメモ。 動かないもの find . -name '*.mkv' -exec bash -c 'echo "{}"' \; cygwin 環境、というかcmd.exeでcygwinの中のfindコマンドを呼び出してるとこれはエラーになっちゃいます。 理由 何故ならfindの\;の\は;をエスケープする役割なので、当然ここにはエスケープキャラクターを入れて置かなければならないわけですが、Windowsのcmdにおいて\はパス区切りであって何もエスケープしてくれません。 なのでcygwinのfindをcmd.exeやnyaosなどのWindows環境のシェルから使うときはcmd.exeのエスケープキャラクターの^を使ってこんなふうに書きましょう。 find . -name '*.mkv' -exec bash -c 'echo "{}"' ^; もしくはどちらの環境でも使える方法の find . -name '*.mkv' -exec bash -c 'echo "{}"' ';' を使うのもいいかもしれません。

続きを読む

プロフィール画像

ironsand

語学好きのプログラマーです

Railsエンジニア

Yokohama