4 个版本
0.1.3 | 2022 年 12 月 27 日 |
---|---|
0.1.2 | 2022 年 12 月 27 日 |
0.1.1 | 2022 年 12 月 27 日 |
0.1.0 | 2022 年 12 月 27 日 |
#4 in #mv
每月下载 22 次
13KB
201 行
sync_mv
概述
生成包含 mkdir
和 mv
命令的脚本,这些命令将 dst
文件夹中的文件移动到与 src
文件夹相同的文件结构。
此实用程序有助于在使用 rsync
并且 src
文件夹中的文件已经移动时避免文件复制(通常是从远程计算机复制)
-
它检测到在
src
中已存在的文件已被移动到dst
,并生成一个mv
命令来移动文件。 -
它通过文件大小和修改日期检测重复。因此,它假设
rsync
正在复制文件属性。例如,使用rsync -a
。 -
默认情况下,小于 1MB 的文件被忽略,因为使用
rsync
复制它们不会增加太多时间。阈值可以通过--min-file-size
标志来控制。 -
所有符号链接都被忽略。
命令
sync_mv --action digest --folder source_folder --min-file-size 1000000 > src.json
# or: ssh user@host_ip '/home/user/sync_mv --action digest --folder source_folder --min-file-size 1000000' > src.json
sync_mv --action digest --folder destination_folder --min-file-size 1000000 > dst.json
sync_mv --action diff --src src.json --dst dst.json > diff.txt
上面的命令生成一个包含要运行的命令的 diff.txt 文件。您可以检查该文件并运行它,然后可选地使用 rsync
同步文件夹。例如,
bash diff.txt
rsync -avh source_folder destination_folder
安装
- 安装 cargo
- 运行
cargo install sync_mv
许可证
MIT
依赖关系
~1.6–2.5MB
~50K SLoC