我经常在网上看到用不同符号连接各种命令的教程。例如:
command1 | command2
command1 & command2
command1 || command2
command1 && command2
Run Code Online (Sandbox Code Playgroud)
其他人似乎将命令连接到文件:
command1 > file1
command1 >> file1
Run Code Online (Sandbox Code Playgroud)
这些是什么?他们叫什么?他们在做什么?还有更多吗?
我有一个 bash 脚本,它枚举目录中的每个 *.php 文件并应用于iconv它。这将在 STDOUT 中获得输出。
由于添加-o参数(根据我的经验)实际上可能在转换发生之前写入一个空白文件,我如何调整我的脚本以进行转换,然后覆盖输入文件?
for file in *.php
do
iconv -f cp1251 -t utf8 "$file"
done
Run Code Online (Sandbox Code Playgroud) 可能重复:
IO 重定向和 head 命令
我只想删除文件的第一行以外的所有内容。我这样做了:
head -1 foo.txt
Run Code Online (Sandbox Code Playgroud)
...并确认我只看到了第一行。然后我做了:
head -1 foo.txt > foo.txt
Run Code Online (Sandbox Code Playgroud)
但不是只包含第一行,foo.txt现在是空的。
事实证明,这cat foo.txt > foo.txt也清空了文件。
为什么?
prova1是一个带有一些文本的文件。当我运行此代码时,prova1变为空:
sort prova1 > prova1
Run Code Online (Sandbox Code Playgroud)
我知道要达到我可以做的效果:
sort prova1 -o prova1
Run Code Online (Sandbox Code Playgroud)
我只想知道原因:)