使用不同的名称对一个文件进行多份复制

使用不同的名称对一个文件进行多份复制

我如何从一个文件创建多个文件?例如,我有1.json,但想从中创建2.json++ 。3.json4.json

最明显的方法就是等等cp 1.json 2.json;但是 Linux 是否提供了一些方法可以在一个命令中完成此操作?

答案1

您可以使用 for 循环:

for i in {2..4} ; do cp 1.json "$i".json ; done

您还可以使用tee

cat 1.json | tee {2,3}.json > 4.json

您也可以不使用括号,而只列出名称:

for i in 2 3 4 ; do cp 1.json "$i".json ; done
cat 1.json | tee 2.json 3.json > 4.json

答案2

考虑与原始文件建立硬链接;这是您可以进行的最快复制。每个副本还会“复制”您对原始文件所做的任何更改。


$ mkdir z
$ cd z
$ ls
$ echo >1 "文件 1 的内容"
美元 ln 1 2
$猫2
文件 1 的内容
美元 ln 1 3
$ ls -lh
共 12K
-rw-rw-r-- 3 hannu hannu 18 六月 15 22:34 1
-rw-rw-r-- 3 hannu hannu 18 六月 15 22:34 2
-rw-rw-r-- 3 hannu hannu 18 六月 15 22:34 3
$猫3
文件 1 的内容
$ echo >>2 "文件 2 的内容"
$ 猫 1 2 3
文件 1 的内容
文件 2 的内容
文件 1 的内容
文件 2 的内容
文件 1 的内容
文件 2 的内容
$ echo >>3 "文件 3 的内容"
$猫1
文件 1 的内容
文件 2 的内容
文件 3 的内容
1令吉
$猫3
文件 1 的内容
文件 2 的内容
文件 3 的内容
$猫2
文件 1 的内容
文件 2 的内容
文件 3 的内容
2令吉
$猫3
文件 1 的内容
文件 2 的内容
文件 3 的内容
3令吉
$ ls -lA
共 0
$ CD..
$ rm -rf z
$

更多信息:$ man lnhttps://en.wikipedia.org/wiki/Hard_link

相关内容