我可以使用以下方法将 5 个文件移动到某个位置:
$ mv my-{1..5}.jpg /path/to/dir/
如何轻松复制一份文件 5 份
# doesn't work
$ cp my.jpg my-{1..5}.jpg
可以不使用吗for loop
?
答案1
尝试这个
for f in {1..5}; do cp my.jpg my$f.jpg; done
(这里没有 bash,所以自己尝试一下)
答案2
for
这是一种无需循环且没有使用风险的方法eval
:
printf '%s\n' {1..5} | xargs -I {} cp my.jpg my-{}.jpg
它实际上仍然是一个循环。
答案3
尝试tee
:
tee <my.jpg >/dev/null my-{1..5}.jpg
或者parallel
:
parallel cp my.jpg ::: my-{1..5}.jpg
答案4
您可以在不使用循环的情况下完成此操作......使用tee
并{}
括号扩展。
编辑:(根据丹尼斯·威廉姆森评论:
对于名为“my-.jpg”的文件
pre="my-"; suf=".jpg"
<"$pre$suf" tee "$pre"{1..5}"$suf" >/dev/null