rock.mpg
我在文件夹目录中有一个文件/folder1/folder2
。我需要在不同的目录中创建该文件的多个(340)重复副本,/folder1/folder2/folder3
但具有不同的唯一文件名。
340 个重复副本的唯一名称是随机的且不连续。它们已经在abc.txt
我拥有的单独的文本文件中定义。
重复文件名的示例abc.txt
如下
MS123.mpg
DW235.mpg
WQ6748.mpg
HDJ74.mpg
...
...
很快
可以用shell脚本实现吗?
答案1
应该相当容易xargs
:
xargs -a abc.txt -i cp /folder1/folder2/rock.mpg /folder1/folder2/folder3/{}
-a abc.txt
告诉xargs
读取abc.txt
(而不是像往常一样从标准输入读取)-i
告诉用一行输入xargs
替换{}
测试它:
xargs -a abc.txt -i echo cp /folder1/folder2/rock.mpg /folder1/folder2/folder3/{}
答案2
仅使用 BASH:
while read newname ; do
cp old/dir/rock.mpg /new/dir/"$newname"
done < abc.txt
甚至在一行中:
while read newname ; do ; cp old/dir/rock.mpg /new/dir/"$newname" ; done < abc.txt
该机制是将 abc.txt 的每一行读取为变量 newdir,然后使用此新名称将旧文件复制到新位置。