跳转到主要内容

去重命令行工具

项目描述

作者:

Noah Gift

版本:
0.1.5

摘要

一个去重命令行工具和库。使用基于搜索类似大小的文件,然后执行完整的md5校验和的相对高效算法来确定重复的文件/文件对象。发现文件后可以删除,可以使用模式匹配来限制搜索结果。最后,支持配置文件的使用,并有一个正在开发的API,它可以通过ActionsMixin类进行定制。

CLI使用示例

大小

使用–size或-s选项按大小搜索

liten.py -s 1 /mnt/raid         is equal to liten.py -s 1MB /mnt/raid
liten.py -s 1bytes /mnt/raid
liten.py -s 1KB /mnt/raid
liten.py -s 1MB /mnt/raid
liten.py -s 1GB /mnt/raid
liten.py c:\in d:\              is equal to liten.py -s 1MB c:\in d:\

报告位置

使用-r或–report=/tmp/report.txt生成自定义报告路径

./liten.py --report=/tmp/test.txt /Users/ngift/Documents

默认情况下,将在当前工作目录中创建报告,称为LitenDuplicateReport.csv

配置文件

您可以使用以下格式的配置文件

[Options]
path=/tmp
size=1MB
pattern=*.m4v
delete=True

您可以为配置文件命名任何名称,并放置在任何位置。

以下是一个示例用法

./liten.py --config=myconfig.ini

详细程度

所有标准输出可以通过使用 –quiet 或 -q 来抑制。

删除

使用 –delete 选项可以自动删除重复文件。该 API 支持交互模式和 dry-run 模式,但尚未在 CLI 中实现。

库/API使用示例

>>> Liten = Liten(spath='testData')
>>> dupeFileOne = 'testData/testDocOne.txt'
>>> checksumOne = Liten.createChecksum(dupeFileOne)
>>> dupeFileTwo = 'testData/testDocTwo.txt'
>>> checksumTwo = Liten.createChecksum(dupeFileTwo)
>>> nonDupeFile = 'testData/testDocThree_wrong_match.txt'
>>> checksumThree = Liten.createChecksum(nonDupeFile)
>>> checksumOne == checksumTwo
True
>>> checksumOne == checksumThree
False

还有一个“动作”的概念,可以在以后实现,允许在定义文件树条件时执行自定义动作。

测试

  • 运行 Doctests: ./liten -t 或 –test

  • 运行 test_liten.py

  • 运行 test_create_file.py,然后使用 liten 删除这些测试文件:

    python2.5 liten.py –delete /tmp

显示选项

标准输出

标准输出将显示重复文件的路径和大小,例如

Printing dups over 1 MB using md5 checksum: [SIZE] [ORIG] [DUP]
7 MB  Orig:  /Users/ngift/Downloads/bzr-0-2.17.tar
Dupe:  /Users/ngift/Downloads/bzr-0-4.17.tar

报告

在您的当前工作目录中创建名为 LitenDuplicateReport.csv 的报告

Duplicate Version,     Path,       Size,       ModDate
Original, /Users/ngift/Downloads/bzr-0-2.17.tar, 7 MB, 07/10/2007 01:43:12 AM
Duplicate, /Users/ngift/Downloads/bzr-0-3.17.tar, 7 MB, 07/10/2007 01:43:27 AM

调试模式环境变量

  • 要启用打印语句调试,请将 LITEN_DEBUG 设置为 1

  • 要启用 pdb 断点调试,请将 LITEN_DEBUG 设置为 2

  • LITEN_DEBUG_MODE = int(os.environ.get(‘LITEN_DEBUG’, 0))

  • 注意:当 DEBUG 模式启用时,将向标准输出显示消息

问题:noah dot gift at gmail.com

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。

源分布

liten-0.1.6.tar.gz (9.5 kB 查看散列)

上传时间:

构建分布

liten-0.1.6-py2-none-any.whl (12.5 kB 查看散列)

上传时间: Python 2

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面