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 // ~\nRun Code Online (Sandbox Code Playgroud)\n希望能帮助到你!
\n