aef*_*aef 47 linux command-line posix tee
我正在使用| sudo tee FILENAME能够写入或附加到经常需要超级用户权限的文件。
尽管我理解为什么它在某些情况下很有用,但它tee也会再次将其输入发送到 STDOUT,但我从未真正将其tee用于任何有用的部分。在大多数情况下,如果我不采取额外的步骤并使用tee 1> /dev/null.
我的问题:是否有一个命令 arround,它的作用与 完全相同tee,但默认情况下不向 STDOUT 输出任何内容?
小智 32
另一个避免管道回送的选择/dev/zero是
sudo command | sudo dd of=FILENAME
Run Code Online (Sandbox Code Playgroud)
Cur*_*urt 13
该dd解决方案仍然打印垃圾标准错误:
$ ls | sudo dd of=FILENAME
0+1 records in
0+1 records out
459 bytes (459 B) copied, 8.2492e-05 s, 5.6 MB/s
Run Code Online (Sandbox Code Playgroud)
使用以下status选项可以避免这种情况:
command | sudo dd status=none of=FILENAME
Run Code Online (Sandbox Code Playgroud)
另一个有趣的可能性(无论如何对于 Linux):
command | sudo cp /dev/stdin FILENAME
Run Code Online (Sandbox Code Playgroud)
要将 TTY 输入复制到文件中,我经常这样做:
sudo cp /dev/tty FILENAME
Run Code Online (Sandbox Code Playgroud)
太糟糕了 tee 没有抑制标准输出的选项。
你可以使用脚本。即把这样的东西放在 ie 中$HOME/bin/stee,0tee或者类似的:
#!/bin/bash
argv=
while [[ "$1" =~ ^- ]]; do
argv+=" $1"
shift
done
sudo tee $argv "$1" > /dev/null
Run Code Online (Sandbox Code Playgroud)
#!/bin/bash
sudo tee "$@" > /dev/null
Run Code Online (Sandbox Code Playgroud)
使其可执行:
$ chmod 755 钢
现在做即:
$ ls -la | stee -a /root/foo
| 归档时间: |
|
| 查看次数: |
26251 次 |
| 最近记录: |