今天看到Linux中(centos7)关于重定向看到有这么一个语句,cat f1 ,这个不是说把f1内容输入重定向读出来再输出重定向放到f1里面去吗,为什么f1会被清空?为啥不是不变
单纯cat不会对原始文件进行任何改动,你这个命令是不是少了点什么东西
在 Linux 中,执行
cat f1
命令会将文件 f1 的内容输出到屏幕上,而不是将内容进行重定向。如果将cat f1
命令的输出结果重定向到 f1 文件中,则会将 f1 文件中原有的内容清空,然后将输出结果重新写入 f1 文件中。
这是因为在 Linux Bash 命令中,重定向操作符(>
和>>
)的含义是将左侧命令的标准输出重定向到右侧文件中,并覆盖或追加原有内容。在执行cat f1
命令时,其标准输出是屏幕(即控制台),如果将其使用>
或>>
重定向到 f1 文件中,就会将内容覆盖或追加到 f1 文件中。
如果需要将文件 f1 的内容追加到文件 f2 末尾,可以使用cat f1 >> f2
命令,而不是cat f1 > f2
命令,这样就可以将 f1 的内容追加到 f2 文件末尾,而不是覆盖 f2 文件的内容。
如果以上回答对您有所帮助,点击一下采纳该答案~谢谢