加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – 使用RSync复制连续的文件范围

发布时间:2020-12-14 01:05:07 所属栏目:Linux 来源:网络整理
导读:对不起,如果这没有意义,但我会尝试提供所需的所有信息! 我想使用rsync将一系列顺序编号的文件从一个文件夹复制到另一个文件夹. 我正在归档DCDM(它是一个电影的东西),它包含600,000个单独编号的顺序.tif图像文件(~10mb ea.). 我需要打破这一点才能正确存档到
对不起,如果这没有意义,但我会尝试提供所需的所有信息!

我想使用rsync将一系列顺序编号的文件从一个文件夹复制到另一个文件夹.

我正在归档DCDM(它是一个电影的东西),它包含600,000个单独编号的顺序.tif图像文件(~10mb ea.).

我需要打破这一点才能正确存档到LTO6磁带上.我想使用rsync来准备文件夹,这样我的简单bash .sh文件就可以自动化我要备份到磁带的各种文件夹和文件.

我在运行rsync时通常使用的命令是:

sudo rsync -rvhW --progress --size only <src> <dest>

如果需要我使用sudo,我总是先用–dry-run测试结果

我有任何工作(没有踢出错误)的唯一方法是使用*通配符.但是,这只有具有设置模式的文件(例如01 *将只移动010000 – 019999范围内的文件),我将不得不重复02,03,04等.

我已经在网上看了,我正在努力找到一个有效的答案.

这可能是不可能的,并且对于600,000个.tif文件,我不能为每个文件写一个排除!

有关如何(如果有的话)这样做的任何想法?

欧文.

解决方法

Globing是shell的一项功能,可将通配符扩展为匹配文件名列表.您已在问题中使用过它.

对于以下解释,我假设我们在一个包含以下文件的目录中:

$ls -l
-rw-r----- 1 5gon12eder staff 0 Sep  8 17:26 file.txt
-rw-r----- 1 5gon12eder staff 0 Sep  8 17:26 funny_cat.jpg
-rw-r----- 1 5gon12eder staff 0 Sep  8 17:26 report_2013-1.pdf
-rw-r----- 1 5gon12eder staff 0 Sep  8 17:26 report_2013-2.pdf
-rw-r----- 1 5gon12eder staff 0 Sep  8 17:26 report_2013-3.pdf
-rw-r----- 1 5gon12eder staff 0 Sep  8 17:26 report_2013-4.pdf
-rw-r----- 1 5gon12eder staff 0 Sep  8 17:26 report_2014-1.pdf
-rw-r----- 1 5gon12eder staff 0 Sep  8 17:26 report_2014-2.pdf

最简单的情况是匹配所有文件.以下是一个穷人的ls.

$echo *
file.txt funny_cat.jpg report_2013-1.pdf report_2013-2.pdf report_2013-3.pdf report_2013-4.pdf report_2014-1.pdf report_2014-2.pdf

如果我们想要匹配2013年的所有报告,我们可以缩小匹配范围:

$echo report_2013-*.pdf
report_2013-1.pdf report_2013-2.pdf report_2013-3.pdf report_2013-4.pdf

例如,我们可以省略.pdf部分,但我希望尽可能具体.

您已经提出了一个解决方案来使用它来选择一系列编号的文件.例如,我们可以按季度匹配报告:

$for q in 1 2 3 4; do echo "$q. quater: " report_*-$q.pdf; done
1. quater:  report_2013-1.pdf report_2014-1.pdf
2. quater:  report_2013-2.pdf report_2014-2.pdf
3. quater:  report_2013-3.pdf
4. quater:  report_2013-4.pdf

如果我们懒得输入1 2 3 4,我们可以使用$(seq 4)代替.这将使用参数4调用程序seq并替换其输出(在这种情况下为1 2 3 4).

现在回到你的问题:如果你想要大小为10的大小,你应该能够扩展上面的例子以满足你的需求.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读