#rsync #folder #file-copy #src #dst #command #mv

app sync_mv

二进制程序,生成包含 mkdirmv 命令的脚本,这些命令将 dst 文件夹中的文件移动到与 src 文件夹相同的文件结构。在运行 rsync 之前运行它,以节省在源文件夹中移动的文件复制

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 次

MIT 许可证

13KB
201

sync_mv

概述

生成包含 mkdirmv 命令的脚本,这些命令将 dst 文件夹中的文件移动到与 src 文件夹相同的文件结构。

此实用程序有助于在使用 rsync 并且 src 文件夹中的文件已经移动时避免文件复制(通常是从远程计算机复制)

  1. 它检测到在 src 中已存在的文件已被移动到 dst,并生成一个 mv 命令来移动文件。

  2. 它通过文件大小和修改日期检测重复。因此,它假设 rsync 正在复制文件属性。例如,使用 rsync -a

  3. 默认情况下,小于 1MB 的文件被忽略,因为使用 rsync 复制它们不会增加太多时间。阈值可以通过 --min-file-size 标志来控制。

  4. 所有符号链接都被忽略。

命令

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

安装

  1. 安装 cargo
  2. 运行 cargo install sync_mv

许可证

MIT

依赖关系

~1.6–2.5MB
~50K SLoC