- 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命令、标志和后端的帮助.
- 我的微信
- 这是我的微信扫一扫
- 我的微信公众号
- 我的微信公众号扫一扫