使用 nohup 将命令在后台运行时,某些内容会出现在终端中。
cp: error reading ‘/mnt/tt/file.txt’: Input/output error
cp: failed to extend ‘/mnt/tt/file.txt’: Input/output error
Run Code Online (Sandbox Code Playgroud)
我想将该内容保存到文件中。
这个问题可能听起来有点愚蠢,但我真的看不出重定向和管道之间的区别。
重定向用于重定向 stdout/stdin/stderr,例如ls > log.txt.
管道用于将命令的输出作为另一个命令的输入,例如ls | grep file.txt.
但是为什么同一件事有两个运营商呢?
为什么不直接写ls > grep来传递输出,这不也是一种重定向吗?我缺少什么?
假设我想在不打开编辑器的情况下将一行添加到文件中。
我怎么能附加这一行
alias list='ls -cl --group-directories-first'
Run Code Online (Sandbox Code Playgroud)
到这个文件
config.fish
Run Code Online (Sandbox Code Playgroud) 我看到类似command 1> out或 with2>&1来重定向 stderr 的东西,但有时我也看到&>自己,等等。
最好的理解&方式是什么?它究竟意味着什么?
我试图了解下面的 shell 脚本在做什么。我知道没有任何参数的 exec 会重定向当前 shell 的输出,但无法理解以下命令的作用:
exec 1>/var/opt/log/my_logs/MYPROG_`date '+%Y%m%d_%H%M%S'`.log 2>&1
Run Code Online (Sandbox Code Playgroud) 我见过很多这样写的 crontab 命令:
*/5 * * * * ~/script.sh >/dev/null 2>&1
Run Code Online (Sandbox Code Playgroud)
有人能解释一下 的确切含义是什么吗2>&1?