我是 Linux 新手。当我使用 bash 在当前目录下创建一个新文件 .gitignore 时,我发现我可以这样做:
> .gitignore
Run Code Online (Sandbox Code Playgroud)
或者
touch .gitignore
Run Code Online (Sandbox Code Playgroud)
似乎他们做同样的事情。当我查看 手册时touch,它说更改当前文件的时间戳,但没有>. 那么有人可以解释一下可以>做什么,在这种情况下使用这两个命令有什么区别吗?谢谢。
mur*_*uru 21
>是外壳重定向操作符。请参阅shell 命令中“>”和“>>”之间的区别是什么?和什么时候应该使用<或<()或<<和>或>()?它主要用于将命令的输出重定向到文件。如果文件不存在,shell 会创建它。如果它存在,shell 会截断它(清空它)。使用 just > file,没有命令,所以 shell 创建一个文件,但没有输出发送给它,所以最终效果是创建一个空文件,或清空现有文件。
touch如您所知,是创建文件或更新时间戳的外部命令。使用touch,文件内容不会丢失(如果存在),与使用不同>。
的行为>取决于外壳。在 bash、dash 和大多数 shell 中,> foo将按您的预期工作。在 zsh 中,默认情况下,其> foo工作方式类似于cat > foo- zsh 等待您输入。