- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我看过 this answer关于使用 command 2>x 1>y
将 stdout/stderr
重定向到不同的地方。但是,我对操作 stdout
部分很感兴趣:
我想tar -xvzf
一个文件,对输出文件进行计数,并将其存储在一个文件中,并将错误存储在另一个文件中。
第一次尝试:
tar -xvzf pkg.tgz 2>err 1>output
文件名本身保存在output
中(我没有使用wc -l
,但至少它给出了有意义的输出)
第二次尝试:
tar -xvzf pkg.tgz 2>err 1 | wc -l >output
tar: 1: Not found in archive
tar: Exiting with failure status due to previous errors
如果出现问题(tar -xvzf
通常会解压缩文件并输出错误),我如何获取提取的文件数或失败指示?
第三次尝试:
tar -xvzf pkg,tgz 2>err | wc -l > output
有点效果,但我不确定...
我的问题是:我的第 3 次尝试是否合法?此外,是否有一个选项,即只有在文件中有数据时,重定向才会创建文件(即,如果 stderr
什么都没有,则不会创建错误文件?)
最佳答案
tee
命令在这种情况下可以提供很多帮助。它就像道路或管道上的 T 形接头。 Tee 获取 std 输入,将其发送到 1 个或多个文件,然后也输出到 std 输出,它可能有进一步的过滤器,例如 wc
。
如果您想在将内容保存到文件之前对其进行进一步操作,请在发球区之前进行。如果你只想对文件做额外的操作,那么在 bash 中,你可以使用 >(command) 而不是文件名。
关于linux - 将错误重定向到一个文件,将标准输出重定向到另一个函数,然后再重定向到另一个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52813608/
我有本地更改和远程更改。 有人告诉我必须先推,再 pull 。这背后有什么原因吗? 最佳答案 那个人错了:正确的模型是pull-before-you-push,而不是相反。 当您pull时,git 将
我正在使用最新版本的 Flat UI Pro 1.3.2 ( http://designmodo.com/flat/ ),jQuery 插件 flatui-radiocheck v0.1.0 和 iO
我是一名优秀的程序员,十分优秀!