我经常在网上看到用不同符号连接各种命令的教程。例如:
command1 | command2
command1 & command2
command1 || command2
command1 && command2
Run Code Online (Sandbox Code Playgroud)
其他人似乎将命令连接到文件:
command1 > file1
command1 >> file1
Run Code Online (Sandbox Code Playgroud)
这些是什么?他们叫什么?他们在做什么?还有更多吗?
可能的重复:
如何使 iconv 用转换后的输出替换输入文件?
我经常使用他们的公共 DNS 名称
( ec2-12-34-56-78.compute-1.amazonaws.com
)连接到 amazon ec2 ,因此我的known_hosts
文件被大量ec2
我永远不会再使用的条目所淹没。
我知道我可能可以sed -i
用来就地编辑,但我想使用grep
,所以我这样做了:
grep -v ec2 ~/.ssh/known_hosts > ~/.ssh/known_hosts
Run Code Online (Sandbox Code Playgroud)
这留下known_hosts
了一个空文件。如果我做:
grep -v ec2 ~/.ssh/known_hosts > ~/.ssh/tmp
mv ~/.ssh/tmp ~/.ssh/known_hosts
Run Code Online (Sandbox Code Playgroud)
然后一切都很好,但我很困惑,为什么读取和写入同一个文件的叶子空白的,如果有迂回方式,使用的时候grep
,cat
等等。
我销毁了一堆不必要的文件,我不知道为什么。我一直在执行如下命令:
tr -sc 'A-Za-z' '\n' > somefile.txt | less
Run Code Online (Sandbox Code Playgroud)
没有输出(带有闪烁 END 的空白页),并且在检查文件中的所有内容时将被擦除。
另一个删除全文文件的命令
grep someword > someotherfile.txt | less
Run Code Online (Sandbox Code Playgroud)