hashdb2提供了一种基于匹配文件执行命令的简单方法
hashdb2的Python项目详细描述
用于快速扫描和比较文件/文件夹的命令行实用程序,主要基于内容。 可以使用参数替换将比较结果馈送到命令行。
此实用程序提供了一种快速高效地查找/删除/移动重复文件的方便方法。 文件元数据,包括散列,可以缓存在磁盘上,允许快速重复比较。
安装
pip install hashdb2
命令行
HashDb2 Usage: hashdb2 -h | --help hashdb2 --version hashdb2 hash [-f|-q|-n] DATABASE -- INPUTS... hashdb2 comp [-f|-q|-n] [-steb0cid] ((--lhs-db LHSDB [(--lhs-path LHSPATH [--lhs-update])]) | --lhs-path LHSPATH) [(--rhs-db RHSDB ([--rhs-path RHSPATH [--rhs-update]])) | --rhs-path RHSPATH] -- COMMAND... Options: hash Create/Update DATABASE with INPUTS comp Compare inputs, executing COMMAND for each result according to the special arguments provided to COMMAND -f, --full Generate/Compare complete hash -q, --quick Generate/Compare quick hash -n, --none Do not generate/compare hashes [default] -s, --size Compare using size -t, --time Compare using modification time -e, --extension Compare using file extension -b, --basename Compare using basename -0, --skip-empty Skip empty files -c, --echo Echo command before execution -i, --ignore-errors Ignore errors when executing command -d, --dry-run Echo command but do not run it --lhs-db LHSDB Left database input --lhs-update Update left database as required --lhs-path LHSPATH Left sub-path --rhs-db RHSDB Right database input --rhs-update Update right database as required --rhs-path RHSPATH Right sub-path DATABASE Name of the database to create/update INPUTS List files/folders to add to DATABASE COMMAND Command which is executed according to matched groups The following values within command have special meaning: {LHS} {LHS} {RHS} {LHS} {RHSGROUP} {LHSGROUP} {LHSGROUP} {RHS} {LHSGROUP} {RHSGROUP} {LHSONLY} {LHSONLYGROUP} {RHS} {RHSGROUP} {RHSONLY} {RHSONLYGROUP} {DUPE} {DUPEGROUP} {UNIQUE} {UNIQUEGROUP} LHS and RHS specifies the input The GROUP suffix combines items into a list The ONLY suffix finds elements which have no match Use DUPE to get inputs which have duplicates (not valid with rhs) Use UNIQUE to get inputs which are unique (not valid with rhs)
示例
查找并删除重复项
hashdb2 comp --lhs-path /my-files -- rm {DUPE}
比较两个文件夹并从其中一个文件夹中删除副本
hashdb2 comp --lhs-path /keep-these-files --rhs-path /remove-duplicates -- rm {RHS}
复制丢失的文件
hashdb2 comp --lhs-path /backup --rhs-path /sdcard -- cp {RHSONLY} /backup/