![如何将一个文件的所有内容重定向到另一个文件?](https://linux22.com/image/126815/%E5%A6%82%E4%BD%95%E5%B0%86%E4%B8%80%E4%B8%AA%E6%96%87%E4%BB%B6%E7%9A%84%E6%89%80%E6%9C%89%E5%86%85%E5%AE%B9%E9%87%8D%E5%AE%9A%E5%90%91%E5%88%B0%E5%8F%A6%E4%B8%80%E4%B8%AA%E6%96%87%E4%BB%B6%EF%BC%9F.png)
我有两个文件:file_a 和 file_b。我想将>
file_a 的所有内容重定向 ( ) 到 file_b 中。
伪代码是file_a > file_b
.怎么做?我觉得我应该使用猫。
答案1
挑剔:在 Unix 中,你可以重定向输出或输入流,但不能重定向文件。
正如 RomanPerekhrest 在对该问题的评论中建议的那样:
cat file_a >file_b
这会将标准输出流(或只是“输出”)重定向cat
到file_b
。的输出cat
将是 的内容file_a
。
这具有相同的效果(忽略有关权限和所有权的边缘情况差异)
cp file_a file_b
还有许多其他方法可以将文件的完整内容复制到另一个文件中,包括对文本文件应用非修改过滤器的简单示例,例如
dd if=file_a of=file_b
awk '1' file_a >file_b
sed '' file_a >file_b
ETC。
上面所有的例子都会覆盖的先前内容file_b
。
到附加到file_b
,替换>
上面示例中使用的>
,>>
例如
cat file_a >>file_b
file_a
要将的内容附加到的内容file_b
并将其存储在第三个文件中:
cat file_b file_a >file_c
cat
将按顺序依次输出每个文件参数的内容,结果将重定向到新file_c
文件中。
答案2
简单的方法是复制:
cp file1 file2
还有多种方法可以将输出数据流转移到另一个文件中,例如:
cat file1 > file2
less file1 > file2
more file1 > file2
您可以使用 rsync 进行备份:
rsync -r /media/hdd1/Folder1/ /media/hdd2/Folder2/
rsync 正在将整个文件夹从一个驱动器备份到另一个驱动器,并且 -r 选项指定对所有文件和子文件夹递归执行此操作。