yll*_*ate 1 shell deduplication rmlint duplicate-files
我有两个地点/path/to/a
和/path/to/b
. 我需要在两个路径中查找重复的文件并仅删除/path/to/b
项目中的项目。 rmlint
生成相当大的删除脚本,但它包含两个路径(甚至空文件夹)中要删除的条目。
我使用rmlint
以下参数运行以获得此结果,我认为该结果只会/path/to/a
被选择删除:
rmlint -g -e -S p /path/to/a /path/to/b
Run Code Online (Sandbox Code Playgroud)
小智 5
根据文档,标记就是您所需要的。
\n要使用标记,您可以使用//
. // 分隔符之后的每个路径都被视为 \xe2\x80\x9ctagged\xe2\x80\x9d 并在可能的情况下被视为原始路径
例如,rmlint a // b
将“a”路径标记为重复路径,将“b”标记为原始路径
为了永远不删除任何标记的文件,可以使用-k
( --keep-all-tagged
) 选项。\n另一个选项是-m
( --must-match-tagged
),它仅查找标记路径中存在原始文件的重复项。
一个简单的例子(取自文档)是:您有一个便携式备份驱动器,上面有一些旧备份。您刚刚将主文件夹备份到新的备份驱动器。您想重新格式化旧的备份驱动器并将其用于其他用途。但首先您要检查旧驱动器上是否有您在其他地方没有的\xe2\x80\x99t 的任何内容。旧驱动器安装在/media/portable
。
$ rmlint --keep-all-tagged --must-match-tagged /media/portable // ~\n
Run Code Online (Sandbox Code Playgroud)\n希望能帮助到你!
\n