czkawka-强大易用的重复文件查找和删除工具

这篇具有很好参考价值的文章主要介绍了czkawka-强大易用的重复文件查找和删除工具。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Czkawka (tch•kav•ka (IPA: [ˈʧ̑kafka]), “hiccup” in Polish) is a simple, fast and free app to remove unnecessary files from your computer.
Multi functional app to find duplicates, empty folders, similar images etc.

Czkawka

Features

  • 使用内存安全的Rust语言编写
  • 超快,得益于一些高级算法和多线程技术
  • 免费,开源,无广告
  • 多平台支持,Linux,Windows,macOS,FreeBSD,还会更多
  • 缓存支持,二次扫描比首次更快
  • 命令行接口,便于自动化
  • gui使用gtk4,界面与fslint很像
  • 没后门,不访问互联网,也不收集用户信息和统计信息
  • 多语言
  • 内置多种工具
    • 重复文件,基于文件名、大小或哈希
    • 空文件夹,查找指定目录中的空文件夹
    • 大文件,在指定位置查找大文件
    • 空文件
    • 临时文件
    • 相似图片
    • 相似视频
    • 相同音乐文件
    • 无效的符号链接
    • 损坏的文件
    • 不匹配的文件扩展名

支持的操作系统

  • Linux - Ubuntu 22.04+, Fedora 36+, Alpine Linux 3.16+, Debian 12+ and a lot of more
  • Windows - 7, 8.1, 10, 11
  • MacOS - 10.15+

如果需要gui使用gtk3的旧版本以支持更多操作系统,比如Ubuntu20.04,可以使用4.1.0或更早的版本。

安装

Windows用户可以使用scoop进行安装:

# 只安装命令行程序
scoop install czkawka

# 安装gui
scoop install czkawka-gui

其他操作系统上的安装方法请参考文档。

如何使用

gui的使用非常简单,在页面指定搜索路径就可以,然后配置相应的工具和后续动作。

重复文件检查工具,windows,rust,linux,macos

命令行的使用
❯ czkawka
czkawka 5.1.0

USAGE:
    czkawka.exe <COMMAND> [SCFLAGS] [SCOPTIONS]

OPTIONS:
  -h, --help     Print help
  -V, --version  Print version

SUBCOMMANDS:
  dup            Finds duplicate files
  empty-folders  Finds empty folders
  big            Finds big files
  empty-files    Finds empty files
  temp           Finds temporary files
  image          Finds similar images
  music          Finds same music by tags
  symlinks       Finds invalid symlinks
  broken         Finds broken files
  video          Finds similar video files
  ext            Finds files with invalid extensions
  tester         Small utility to test supported speed of
  help           Print this message or the help of the given subcommand(s)

    try "czkawka.exe <COMMAND> -h" to get more info about a specific tool

EXAMPLES:
    czkawka dup -d /home/rafal -e /home/rafal/Obrazy  -m 25 -x 7z rar IMAGE -s hash -f results.txt -D aeo
    czkawka empty-folders -d /home/rafal/rr /home/gateway -f results.txt
    czkawka big -d /home/rafal/ /home/piszczal -e /home/rafal/Roman -n 25 -x VIDEO -f results.txt
    czkawka empty-files -d /home/rafal /home/szczekacz -e /home/rafal/Pulpit -R -f results.txt
    czkawka temp -d /home/rafal/ -E */.git */tmp* *Pulpit -f results.txt -D
    czkawka image -d /home/rafal -e /home/rafal/Pulpit -f results.txt
    czkawka music -d /home/rafal -e /home/rafal/Pulpit -z "artist,year, ARTISTALBUM, ALBUM___tiTlE"  -f results.txt
    czkawka symlinks -d /home/kicikici/ /home/szczek -e /home/kicikici/jestempsem -x jpg -f results.txt
    czkawka broken -d /home/mikrut/ -e /home/mikrut/trakt -f results.txt
    czkawka extnp -d /home/mikrut/ -e /home/mikrut/trakt -f results.txt

❯ czkawka dup -h
Finds duplicate files

Usage: czkawka.exe dup [OPTIONS] --directories <DIRECTORIES>

Options:
  -d, --directories <DIRECTORIES>
          Directorie(s) to search
  -e, --excluded-directories <EXCLUDED_DIRECTORIES>
          Excluded directorie(s)
  -E, --excluded-items <EXCLUDED_ITEMS>
          Excluded item(s)
  -m, --minimal-file-size <MINIMAL_FILE_SIZE>
          Minimum size in bytes [default: 8192]
  -i, --maximal-file-size <MAXIMAL_FILE_SIZE>
          Maximum size in bytes [default: 18446744073709551615]
  -c, --minimal-cached-file-size <MINIMAL_CACHED_FILE_SIZE>
          Minimum cached file size in bytes [default: 257144]
  -x, --allowed-extensions <ALLOWED_EXTENSIONS>
          Allowed file extension(s)
  -s, --search-method <SEARCH_METHOD>
          Search method (NAME, SIZE, HASH) [default: HASH]
  -D, --delete-method <DELETE_METHOD>
          Delete method (AEN, AEO, ON, OO, HARD) [default: NONE]
  -t, --hash-type <HASH_TYPE>
          Hash type (BLAKE3, CRC32, XXH3) [default: BLAKE3]
  -f, --file-to-save <file-name>
          Saves the results into the file
  -R, --not-recursive
          Prevents from recursive check of folders
  -l, --case-sensitive-name-comparison
          Use case sensitive name comparison
  -L, --allow-hard-links
          Do not ignore hard links
      --dryrun
          Do nothing and print the operation that would happen.
  -h, --help
          Print help (see more with '--help')

EXAMPLE:
    czkawka dup -d /home/rafal -e /home/rafal/Obrazy  -m 25 -x 7z rar IMAGE -s hash -f results.txt -D aeo

来个实例:

# 创建并进入测试目录
❯ mkdir test && cd test

    Directory: C:\Users\yp.wang

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d----           2023/3/22    12:02                test

# 创建两个内容为"中文"的txt文件echo 中文 > test1.txt
❯ echo 中文 > test2.txt

# 查找重复文件
❯ czkawka dup -d C:\Users\yp.wang\test\ -m 0
error: invalid value '0' for '--minimal-file-size <MINIMAL_FILE_SIZE>': Minimum file size must be at least 1 byte

For more information, try '--help'.

~\test
❯ czkawka dup -d C:\Users\yp.wang\test\ -m 1
Set thread number to 12
Found 2 duplicated files in 1 groups with same content which took 8 B:
Size - 8 B (8) - 2 files
C:\users\yp.wang\test\test1.txt
C:\users\yp.wang\test\test2.txt
----

-------------------------------MESSAGES--------------------------------
Loaded from cache ⁨0⁩ entries
Saved to file ⁨2⁩ cache entries
Loaded from cache ⁨0⁩ entries
Saved to file ⁨0⁩ cache entries
---------------------------END OF MESSAGES-----------------------------

czkawka目前还不支持相对路径,必须使用绝对路径。另外查找重复文件最小要大于0,空文件有另外的命令。

其他命令的用法可以参考文档,还有tips&tricks。

性能测试

因为czkawka是用rust编写,更快是设计目标之一,期望替代python编写的FSlint和DupeGuru,以下做了这几个工具的对比测试。

测试主机:256 GB SSD,i7-4770 CPU.

作者准备了一个磁盘并执行了测试,没有任何文件夹异常,并且禁用了对硬链接的忽略。该磁盘包含 363 215 个文件,占用 221.8 GB,并在 62093 组中有 31790 个重复文件,占用 4.1 GB。

在所有程序中都将文件最小大小设为1KB。

App Executing Time
FSlint 2.4.7 (First Run) 86s
FSlint 2.4.7 (Second Run) 43s
Czkawka 3.0.0 (First Run) 8s
Czkawka 3.0.0 (Second Run) 7s
DupeGuru 4.1.1 (First Run) 22s
DupeGuru 4.1.1 (Second Run) 21s

又使用Mprof检查了FSlint和DupeGuru的内存使用,用Heaptrack检查czkawka。

App Idle Ram Max Operational Ram Usage Stabilized after search
FSlint 2.4.7 62 MB 164 MB 158 MB
Dupeguru 4.1.1 90 MB 170 MB 166 MB
Czkawka 3.0.0 12 MB 122 MB 60 MB

在Dupeguru中,启用了检查不同尺寸的图像以匹配Czkawka行为。 这两个应用程序都使用缓存机制,因此第二次扫描非常快。

检查占用 6.6GB 的 10949 个文件的类似图像:

App Scan time
Czkawka 3.0.0 (First Run) 276s
Czkawka 3.0.0 (Second Run) 1s
DupeGuru 4.1.1 (First Run) 539s
DupeGuru 4.1.1 (Second Run) 1s

检查占用 1.7GB 的 349 个文件的类似图像:

App Scan time
Czkawka 3.0.0 (First Run) 54s
Czkawka 3.0.0 (Second Run) 1s
DupeGuru 4.1.1 (First Run) 55s
DupeGuru 4.1.1 (Second Run) 1s

与其他工具的对比

Bleachbit是查找和删除临时文件的大师,而Czkawka只找到最基本的文件。因此,不应直接比较这两个应用程序或将其视为彼此的替代品。

Czkawka FSlint DupeGuru Bleachbit
Language Rust Python Python/Obj-C Python
OS Lin,Mac,Win Lin Lin,Mac,Win Lin,Mac,Win
Framework GTK 4 PyGTK2 Qt 5 (PyQt)/Cocoa PyGTK3
Duplicate finder
Empty files
Empty folders
Temporary files
Big files
Similar images
Similar videos
Music duplicates(tags)
Invalid symlinks
Broken files
Names conflict
Invalid names/extensions
Installed packages
Bad ID
Non stripped binaries
Redundant whitespace
Overwriting files
Multiple languages
Cache support
In active development Yes No Yes Yes

Other apps

互联网上有许多与Czkawka类似的应用程序,各有长短:

GUI
  • DupeGuru - 许多自定义选项,很棒的照片比较工具
  • FSlint - 有点过时,但仍然有一些工具在 Czkawka 中不可用
  • AntiDupl.NET - 显示比较图像的大量元数据
  • Video Duplicate Finder - 查找相似的视频(令人惊讶,不是吗),支持视频缩略图
CLI

如果正在寻找真正优秀且功能丰富的控制台应用程序,可以对比下面几个工具:

  • Fclones - 查找重复项的最快工具之一,同样使用Rust编写
  • Rmlint - 不错的控制台界面,功能也丰富
  • RdFind - 快速,但用C++编写 ¯\_(ツ)_/¯

公众号 | FunIO
微信搜一搜 “funio”,发现更多精彩内容。文章来源地址https://www.toymoban.com/news/detail-744453.html

到了这里,关于czkawka-强大易用的重复文件查找和删除工具的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Jsonpath - 数据中快速查找和提取的强大工具

    JSON(JavaScript Object Notation)在现代应用程序中广泛使用,但是 如何在复杂的JSON数据中 查找和提取所需的信息呢? JSONPath是一种功能强大的查询语言,可以通过简单的表达式来快速准确地定位和提取JSON数据。本文将介绍JSONPath的基本语法和用法,并为您展示如何封装和使用

    2024年02月03日
    浏览(66)
  • 用python实现检查一个文件夹中所有word文件内容是否重复

    要检查一个文件夹中所有Word文件的内容是否重复,你可以使用Python的 python-docx 库来读取Word文件的内容,并使用Python的集合数据结构来检查重复项。 以下是一个示例代码,演示如何实现这个功能: python复制代码 import os from docx import Document def get_word_files(directory): \\\"\\\"\\\"获取指定目

    2024年01月23日
    浏览(72)
  • 用go语言删除重复文件

    只需将 删除重复文件.exe 放到想要删掉重复文件的目录下,双击运行就会删掉重复的文件了。

    2024年01月22日
    浏览(34)
  • bat脚本删除文件夹下的重复文件

    需求:删除某个文件夹下重复的文件。例如文件名后带(1)(2)等等 脚本: 说明: 指定一个目录(不能包含中文),生成两个记录文件,执行删除文件,最后2s后关闭 参考: bat脚本删除文件夹下的重复文件

    2024年01月21日
    浏览(41)
  • 强大易用!新一代爬虫利器 Playwright 的介绍

    Playwright 是微软在 2020 年初开源的新一代自动化测试工具,它的功能类似于 Selenium、Pyppeteer 等,都可以驱动浏览器进行各种自动化操作。它的功能也非常强大,对市面上的主流浏览器都提供了支持,API 功能简洁又强大。虽然诞生比较晚,但是现在发展得非常火热。 因为 Pla

    2024年04月12日
    浏览(77)
  • 用python删除重复文件并放入回收站

    执行删除当前文件夹(就一层,没有子文件夹)里的重复文件,将文件移动到回收站。 可以使用第三方库 send2trash 来实现。使用命令安装该库。 python代码如下。 在上述代码中,我们导入了 send2trash 库,并使用 send2trash(file_path) 函数来将重复文件移动到回收站。 使用 send2tra

    2024年01月22日
    浏览(53)
  • 简单易用,灵活强大:用SQLAlchemy实现Python操作数据库

    什么是SQLAlchemy? SQLAlchemy是一个Python的SQL工具和ORM框架,可以通过Python代码直接操作关系型数据库,也可以使用ORM模型进行对象关系映射。它支持多种数据库,并提供了强大的SQL表达式和查询API。 SQLAlchemy可以分为两个部分:Core和ORM。 Core:提供了底层的SQL表达式和查询API,

    2024年02月04日
    浏览(73)
  • 探索 ImmortalWRT:一款强大而易用的开源路由器固件

    项目地址:https://gitcode.com/immortalwrt/immortalwrt ImmortalWRT 是一个基于 OpenWRT 的高度定制化路由器固件项目,旨在提供更加稳定、安全且功能丰富的网络环境。它的目标是让每个用户都能轻松地个性化和优化自己的网络设备,无论你是技术新手还是经验丰富的开发者。 OpenWRT 基础

    2024年04月10日
    浏览(45)
  • 基于Material Design风格开源、易用、强大的WPF UI控件库

    今天大姚给大家分享一款基于Material Design风格开源、免费(MIT License)、易于使用、强大的WPF UI控件库: MaterialDesignInXamlToolkit 。 MaterialDesignInXamlToolkit 是一个开源、易于使用、强大的 WPF UI 控件库,旨在帮助开发人员在 C# 和 VB.Net 中实现 Google 的 Material Design 风格的用户界面。

    2024年04月23日
    浏览(55)
  • 【VSCode】查找本地修改历史并恢复已删除文件

    在原先编好的代码里删删改改,后面发现越改越不像样,准备返回去重做,但注释掉的代码并不是全部,已经删了以前写好的部分。本以为自己是有存档的结果之后的代码偏偏没有存。 根据时间有个大致印象是9月13日左右,所以现在开始找时间相近的历史文件 根据[1]资料可

    2024年02月04日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包