我有一个模板文件,用于将PBS作业提交到服务器。我需要制作 n 该模板的副本数量。最后我想输入以下命令或类似的东西:
copy n pbs_template
我希望将新制作的重复文件命名为:
pbs_template_1
pbs_template_2
pbs_template_3
pbs_template_4
pbs_template_n....
以下是我到目前为止所做的......
function copy() {
INPUT=pbs_template
number=$1
shift
for n in $(seq $number); do
cp "$INPUT" "$INPUT"
done
}
显然我需要指定输出的名称(否则我会收到以下错误cp: pbs_template and pbs_template are identical (not copied)
),但是如何使它们按顺序 n 次数?
答案 0 :(得分:1)
尝试这样的事情?
function duplicate () {
for i in $(seq 1 $2)
do
cp $1 "$1_$i"
echo "Made copy '$1_$i'"
done
}
你这样称呼duplicate foo.txt 10
。它将创建10个foo.txt
副本,每个副本带有一个数字后缀。在此调用中,$1
将为foo.txt
,$2
将为10
。
答案 1 :(得分:0)
只需将您的陈述改为此
即可cp -p "$INPUT" "$INPUT"_${n}
这里我使用了-p
开关来保存文件的属性。
如果您不想要,请忽略-p
切换。
希望有所帮助。