web-dev-qa-db-ja.com

find -exec出力をテキストファイルに保存

フォルダにビデオのセットがあります。 ffmpeg -iコマンドを使用してこのビデオに関する情報を取得し、出力をファイルに保存したいと思います。

だから私は行を書きました:

find . -type f -exec ffmpeg -i {} \; > log.txt

しかし、驚くべきことに、ログは空です!ここで何が欠けていますか?

6
Timofey

ここで何が起こっているのかと思いますが、ffmpegはその出力をstderrに送信しています。この場合、必要なのは次のとおりです。

find . -type f -exec ffmpeg -i {} \; 2>log.txt

テストするディストリビューションにffmpegがありませんが、これはavconvlibavで確認されています(この点で同じであるはずです)。

6
Graeme

exec内で出力を設定する

find . -type f -exec ffmpeg -i {} \; > log.txt

breno@stormtrooper:/tmp$ find . -type f -exec ls {} >> /tmp/test.log \;
find: `./Pulse-PKdhtXMmr18n`: Permission denied
breno@stormtrooper:/tmp$ ls
hsperfdata_breno  Pulse-PKdhtXMmr18n  ssh-SLDpHf9PBb5g  t2  test.log
breno@stormtrooper:/tmp$ cat test.log 
./.X0-lock
./.t2.swp
./hsperfdata_breno/3692
./test.log
./.wine-1000/server-801-8a0557/lock
./t2
0
BrenoZan