我如何复制文件并将greetings.text
其内容粘贴到1.txt
、2.txt
、和中?3.txt
4.txt
5.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
。