首页 > 解决方案 > 以数字序列/顺序复制或 rsync

问题描述

我有大量的图像文件,不幸的是在一个未填充的数字序列中,我需要以以下格式复制:

IMG_1.jpg
IMG_2.jpg
...
IMG_500000.jpg

问题是所有文件操作似乎都按顺序操作:

IMG_1.jpg
IMG_10.jpg
IMG_100.jpg
IMG_1000.jpg
IMG_10000.jpg
...
IMG_2.jpg
IMG_20.jpg
IMG_200.jpg
IMG_2000.jpg
IMG_20000.jpg
...

有没有办法复制或同步特定范围的图像?例如:IMG_1.jpg - IMG_5000.jpg没有其他一切?

我唯一能想到的就是手动将此列表构建到一个 txt 文件中并将其传入,但想知道是否有更优雅的解决方案。

标签: shellrsynccp

解决方案


假设每次调用的文件数量有限制,请考虑使用 seq/xargs 将副本拆分为块(例如,每次调用 50 个文件)

seq -f 'IMG_%.0f.jpg' 5000 | xargs -L50 cp -t /target 

如果命令行长度不是问题

cp IMG_{1..5000}.jpg /target

推荐阅读