这个问题可能听起来有点愚蠢,但我真的看不出重定向和管道之间的区别。
重定向用于重定向 stdout/stdin/stderr,例如ls > log.txt.
管道用于将命令的输出作为另一个命令的输入,例如ls | grep file.txt.
但是为什么同一件事有两个运营商呢?
为什么不直接写ls > grep来传递输出,这不也是一种重定向吗?我缺少什么?
什么之间的区别<<,<<<并< <在bash?
这似乎是一个如此简单的问题,但我找不到任何关于它的资源
在 C/C++ 中,这意味着将读取的内容存储在命令提示符中的值中并将其存储在变量中,
在Shell编程中怎么样?
谁能给我一个截断/var/log/目录中所有日志文件的解决方案?
以及一个仅针对知识的问题,这是一个好主意吗?
#!/bin/bash
LOGDIR="/var/log"
for logfile in $(ls $LOGDIR/*log)
do
truncate -s 0 $logfile
done
Run Code Online (Sandbox Code Playgroud) 我是 Linux 新手。当我使用 bash 在当前目录下创建一个新文件 .gitignore 时,我发现我可以这样做:
> .gitignore
Run Code Online (Sandbox Code Playgroud)
或者
touch .gitignore
Run Code Online (Sandbox Code Playgroud)
似乎他们做同样的事情。当我查看 手册时touch,它说更改当前文件的时间戳,但没有>. 那么有人可以解释一下可以>做什么,在这种情况下使用这两个命令有什么区别吗?谢谢。
我发现
ls / > output.txt
Run Code Online (Sandbox Code Playgroud)
创建output.txt其中包含 rootfs 内的文件夹名称。但我无法理解ls / >到底是什么意思。我知道命令ls用于列出该位置中的所有文件,但它有什么ls / >作用呢?我确实man ls阅读了定义,ls / >但在那里找不到。