rclone_dedupe命令

  • A+
所属分类:系统文档


版本介绍: v1.27

rclone dedupe

交互式地查找重复的文件名并删除/重命名它们.

Synopsis

默认情况下,dedupe交互式地找到名字重复的文件,并提供删除所有文件,只删除一个,或将它们重命名为不同的名字。这就是所谓的按名称删除文件.

按名称删除只对一小部分可能有重复文件名的后端(如Google Drive、Opendrive)有用。它可以在包装后端(如crypt)上运行,如果它们包装了一个支持重复文件名的后端。.

然而,如果--by-hash被传入,那么dedupe将找到有重复哈希值的文件,这将在任何支持至少一个哈希值的后端工作。这可以用来查找有重复内容的文件。这就是所谓的通过哈希值进行重复计算.

如果按名称进行删除,首先rclone会合并具有相同名称的目录。 它将迭代进行,直到所有相同名称的目录都被合并。.

下一步,如果按名称进行删除,对于每一组重复的文件名/哈希值,它将删除所有它发现的相同的文件,但不需要确认。 这意味着,对于大多数重复的文件,dedupe命令不会是交互式的。.

dedupe认为文件是相同的,如果它们有相同的文件路径和相同的哈希值。如果后端不支持哈希值(例如crypt包装的Google Drive),那么它们将不会被发现是相同的。如果你使用--size-only标志,那么文件将被认为是相同的,如果他们有相同的大小(任何哈希值将被忽略)。这在不支持哈希值的加密后端上很有用。.

接下来rclone将解决剩余的重复。具体采取哪种行动取决于重复计算模式。默认情况下,rclone会以交互的方式向用户查询每一个重复。.

Important: 由于这可能会导致数据丢失,请先用--干运行--交互式/-i标志进行测试。.

下面是一个运行实例.

Before – with duplicates

$ rclone lsl drive:dupes
  6048320 2016-03-05 16:23:16.798000000 one.txt
  6048320 2016-03-05 16:23:11.775000000 one.txt
   564374 2016-03-05 16:23:06.731000000 one.txt
  6048320 2016-03-05 16:18:26.092000000 one.txt
  6048320 2016-03-05 16:22:46.185000000 two.txt
  1744073 2016-03-05 16:22:38.104000000 two.txt
   564374 2016-03-05 16:22:52.118000000 two.txt

Now the dedupe session

$ rclone dedupe drive:dupes
2016/03/05 16:24:37 Google drive root 'dupes': Looking for duplicates using interactive mode.
one.txt: Found 4 files with duplicate names
one.txt: Deleting 2/3 identical duplicates (MD5 "1eedaa9fe86fd4b8632e2ac549403b36")
one.txt: 2 duplicates remain
  1:      6048320 bytes, 2016-03-05 16:23:16.798000000, MD5 1eedaa9fe86fd4b8632e2ac549403b36
  2:       564374 bytes, 2016-03-05 16:23:06.731000000, MD5 7594e7dc9fc28f727c42ee3e0749de81
s) Skip and do nothing
k) Keep just one (choose which in next step)
r) Rename all to be different (by changing file.jpg to file-1.jpg)
s/k/r> k
Enter the number of the file to keep> 1
one.txt: Deleted 1 extra copies
two.txt: Found 3 files with duplicate names
two.txt: 3 duplicates remain
  1:       564374 bytes, 2016-03-05 16:22:52.118000000, MD5 7594e7dc9fc28f727c42ee3e0749de81
  2:      6048320 bytes, 2016-03-05 16:22:46.185000000, MD5 1eedaa9fe86fd4b8632e2ac549403b36
  3:      1744073 bytes, 2016-03-05 16:22:38.104000000, MD5 851957f7fb6f0bc4ce76be966d336802
s) Skip and do nothing
k) Keep just one (choose which in next step)
r) Rename all to be different (by changing file.jpg to file-1.jpg)
s/k/r> r
two-1.txt: renamed from: two.txt
two-2.txt: renamed from: two.txt
two-3.txt: renamed from: two.txt

The result being

$ rclone lsl drive:dupes
  6048320 2016-03-05 16:23:16.798000000 one.txt
   564374 2016-03-05 16:22:52.118000000 two-1.txt
  6048320 2016-03-05 16:22:46.185000000 two-2.txt
  1744073 2016-03-05 16:22:38.104000000 two-3.txt

可以使用--dedupe-mode标志或通过使用相同值的额外参数以非交互方式运行重复计算

--dedupe-mode interactive – 互动性同上.
--dedupe-mode skip – 删除相同的文件,然后跳过剩下的文件。.
--dedupe-mode first – 删除相同的文件,然后保留第一个文件。.
--dedupe-mode newest – 删除相同的文件,然后保留最新的文件。.
--dedupe-mode oldest – 删除相同的文件,然后保留最古老的文件.
--dedupe-mode largest – 移除相同的文件,然后保留最大的一个。.
--dedupe-mode smallest – 删除相同的文件,然后保留最小的一个。.
--dedupe-mode rename – 删除相同的文件,然后将其他文件重命名为不同的文件。.
--dedupe-mode list – 只列出重复的目录和文件,不做任何改变.

例如,如果要重新命名你的Google Photos目录中所有名称相同的照片,请做

rclone dedupe --dedupe-mode rename "drive:Google Photos"

Or

rclone dedupe rename "drive:Google Photos"
rclone dedupe [mode] remote:path [flags]

选项

      --by-hash              查找相同的哈希值而不是名字
      --dedupe-mode string   剔除模式交互式|跳过|最先的|最新的|最旧的|最大的|最小的|重命名(默认为 "交互式")
  -h, --help                 help for dedupe

关于这里没有列出的全局选项,请参见全局标志页.

SEE ALSO

rclone – 显示对rclone命令、标志和后端的帮助.

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: