重定向到文件,为何有的命令做不到?

Web、Mail、Ftp、DNS、Proxy、VPN、Samba、LDAP 等基础网络服务
回复
whaha
帖子: 104
注册时间: 2016-07-08 17:43
系统: debian8

重定向到文件,为何有的命令做不到?

#1

帖子 whaha » 2017-07-25 16:38

wc -c test.txt > /tmp/output
这个命令可以将wc -c test.txt的结果写入 /tmp/output,同时,屏幕没有输出结果。

ffprobe test.mp3 > /tmp/output1
这个命令,为何不可以将 ffprobe test.mp3 的结果输入到 /tmp/output1,同时,屏幕没有输出??
头像
vickycq
帖子: 4507
注册时间: 2011-03-20 13:12
系统: Debian
来自: 山东省寿光县
联系:

Re: 重定向到文件,为何有的命令做不到?

#2

帖子 vickycq » 2017-07-25 16:42

whaha 写了:wc -c test.txt > /tmp/output 这个命令可以将wc -c test.txt的结果写入 /tmp/output,同时,屏幕没有输出结果。
wc 输出到 stdout (1)
whaha 写了:ffprobe test.mp3 > /tmp/output1 这个命令,为何不可以将 ffprobe test.mp3 的结果输入到 /tmp/output1,同时,屏幕没有输出??
ffprobe 输出到 stderr (2)

代码: 全选

ffprobe test.mp3 > /tmp/output1 2>&1
Debian 中文论坛 - forums.debiancn.org
欢迎所有 Debian GNU/Linux 用户
whaha
帖子: 104
注册时间: 2016-07-08 17:43
系统: debian8

Re: 重定向到文件,为何有的命令做不到?

#3

帖子 whaha » 2017-07-25 17:29

我如何知道一个命令的执行结果,是输出到 stdout1 还是 sdderr2 ??
有无命令可以获得其他命令输出是属于 stdout1 还是 sdderr2 ??

ffprobe test.mp4 这个命令哪来的错误呢?它是正确的表达形式哈!!!

command > filename 2>&1 把标准输出和标准错误一起重定向到一个文件中
command > filename 把标准输出和到一个文件中
我不管 错误输出,我写对命令,只管标准输出到一个文件。
为何不可以?
头像
vickycq
帖子: 4507
注册时间: 2011-03-20 13:12
系统: Debian
来自: 山东省寿光县
联系:

Re: 重定向到文件,为何有的命令做不到?

#4

帖子 vickycq » 2017-07-25 19:09

whaha 写了:我如何知道一个命令的执行结果,是输出到 stdout1 还是 sdderr2 ??
有无命令可以获得其他命令输出是属于 stdout1 还是 sdderr2 ??
看看
https://unix.stackexchange.com/a/186480
https://unix.stackexchange.com/a/186570
whaha 写了:ffprobe test.mp4 这个命令哪来的错误呢?它是正确的表达形式哈!!!
只是把文字信息输出到 stderr,不代表是错误信息
那麽为何输出到 stderr,不输出到 stderr 呢?个人猜测是 stdout 要用来输出别的,如转换好的音视频
以上是猜测,不一定正确。


例如将 a.mp3 转换成 a.ogg,同时将转换过程中的文字信息输出到 log 中:

代码: 全选

ffmpeg -i a.mp3 -f ogg - >a.ogg 2>log
whaha 写了:我不管 错误输出,我写对命令,只管标准输出到一个文件。为何不可以?
可以的。您主楼中第二条命令正是将 ffprobe test.mp3 的标准输出导入 /tmp/output1 中。只是标准输出在这个例子中是空的,没东西。东西全在标准错误里。
Debian 中文论坛 - forums.debiancn.org
欢迎所有 Debian GNU/Linux 用户
whaha
帖子: 104
注册时间: 2016-07-08 17:43
系统: debian8

Re: 重定向到文件,为何有的命令做不到?

#5

帖子 whaha » 2017-07-25 19:35

最后一个问题:
ffmpeg -i a.mp3 -f ogg - >a.ogg 2>log
这里的 - >a ,最后一个 - ,它的含义是什么?
写成
ffmpeg -i a.mp3 -f ogg >a.ogg 2>log
无效

man ffmpeg看了一遍,没有看到 - 不接[option]的含义??
头像
vickycq
帖子: 4507
注册时间: 2011-03-20 13:12
系统: Debian
来自: 山东省寿光县
联系:

Re: 重定向到文件,为何有的命令做不到?

#6

帖子 vickycq » 2017-07-25 19:40

whaha 写了:man ffmpeg看了一遍,没有看到 - 不接[option]的含义??
这个是惯例
在指定输出文件的地方用 - 就是 stdout
在指定输入文件的地方用 - 就是 stdin
Debian 中文论坛 - forums.debiancn.org
欢迎所有 Debian GNU/Linux 用户
回复