如何在命令行中将一个文件的内容复制到其他几个文件中?

如何在命令行中将一个文件的内容复制到其他几个文件中?

我如何复制文件并将greetings.text其内容粘贴到1.txt2.txt、和中?3.txt4.txt5.txt

$ cat greetings.text  
Hello  
Hello  
Hello  
Hello  
Hello  

答案1

您可以使用tee

< greetings.text tee {1..5}.txt

tee -a如果您希望附加到文件而不是覆盖它们,请使用。

答案2

使用

cat greetings.text | tee {1..5}.txt

或者

for i in {1..5} ; do cp greetings.text $i.txt ; done

答案3

cp循环使用:

src=greetings.txt
for dst in {1..5}.txt; do
    cp -T -- "$src" "$dst"
done

如果添加该--reflink选项,cp将指示目标文件系统尝试创建文件的“浅”副本,仅在某些内容修改数据块时才复制数据块。这种技术称为写时复制

答案4

如果内容必须保持不变(即,您不想更新复制的文件),则可以使用软链接或硬链接:

for i in {00..05} ; do ln greetings.text $i.txt ; done

这样,即使文件很大,复制也是即时的,而且您不会因复制而占用任何额外的磁盘空间(我在对 200GB 文件进行测试时就使用了这种方法)。文件内容在最后一个副本+原始文件被删除之前都是可用的rm

相关内容