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的使用非常简单,在页面指定搜索路径就可以,然后配置相应的工具和后续动作。

命令行的使用
❯ 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。

AppExecuting 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。

AppIdle RamMax Operational Ram UsageStabilized after search
FSlint 2.4.762 MB164 MB158 MB
Dupeguru 4.1.190 MB170 MB166 MB
Czkawka 3.0.012 MB122 MB60 MB

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

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

AppScan 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 个文件的类似图像:

AppScan 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只找到最基本的文件。因此,不应直接比较这两个应用程序或将其视为彼此的替代品。

CzkawkaFSlintDupeGuruBleachbit
LanguageRustPythonPython/Obj-CPython
OSLin,Mac,WinLinLin,Mac,WinLin,Mac,Win
FrameworkGTK 4PyGTK2Qt 5 (PyQt)/CocoaPyGTK3
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 developmentYesNoYesYes

Other apps

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

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

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

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

公众号 | FunIO
微信搜一搜 “funio”,发现更多精彩内容。

### 回答1: TS翻译文件Excel文件互转工具是一种方便实用的软件工具,可以将TS翻译文件Excel文件相互转换。TS翻译文件是一种用于存储前端多语言翻译字符串的文件格式,常用于前端开发网页或应用程序时的国际化与本地化支持。而Excel文件则是一种常见的电子表格文档格式,能够保存大量有结构关系的数据。 对于需要将TS翻译文件转换为Excel文件的情况,这个工具可以提供便利。它能够将TS文件中的多语言翻译字符串提取出来,并以行列的方式转换为Excel表格。这样,翻译人员可以方便地使用Excel编辑翻译内容,并且可以更好地进行批量处理,如复制、粘贴、筛选等操作。 而对于需要将Excel文件转换为TS翻译文件的情况,这个工具同样能够帮助实现这一转换。它可以将Excel文件中的多语言翻译字符串按照指定的格式转换为TS翻译文件。这样,开发人员在收到翻译人员提供的Excel文件后,只需要使用该工具转换一下,就可以直接应用到前端项目中去。 总之,TS翻译文件Excel文件互转工具是一个非常实用的工具,可以大大提高开发翻译人员的工作效率。无论是将TS文件转换为Excel文件,还是将Excel文件转换为TS文件,都能够通过该工具轻松实现。 ### 回答2: TS翻译文件Excel文件互转工具是一种实用的软件,可以将TS翻译文件Excel文件之间进行相互转换。TS翻译文件是针对前端开发中的多语言支持而设计的文件格式,其中包含了不同语言的文本翻译内容,以便在应用程序中进行国际化的实现。而Excel文件是一种常见的办公软件中用于数据存储管理的文件格式。 使用这个工具,我们可以将TS翻译文件转换为Excel文件,以便在Excel中进行更方便的编辑管理。这样,翻译人员可以直接在Excel文件中修改添加翻译文本,而不需要对TS文件进行复杂的操作。同时,Excel文件也提供了基本的格式化筛选功能,使得翻译人员可以更加高效地进行翻译工作。 另一方面,这个工具也可以将Excel文件转换为TS翻译文件,以便在前端开发中直接使用。通过将Excel文件转换为TS文件,开发人员可以轻松地将翻译内容集成到应用程序中,实现多语言的支持。这样,我们可以更加灵活地进行翻译工作,并且能够更好地配合开发流程。 总之,TS翻译文件Excel文件互转工具是一款方便实用的软件,可以帮助我们在翻译开发过程中进行文件格式的转换,提高工作效率。无论是翻译人员还是开发人员,都可以从中受益,并且更好地协同工作。 ### 回答3: TS翻译文件Excel文件互转工具是一种可以将.ts文件Excel文件之间相互转换的实用工具。在软件开发过程中,通常会使用.ts文件来存储文本的翻译内容,而Excel文件则被广泛应用于数据的管理分析。这种转换工具的存在可以帮助开发人员翻译人员更方便地进行文本翻译数据处理。 该工具通常具备以下几个主要功能: 1. TS文件转Excel文件:将.ts文件中的文本内容提取出来,并以Excel表格的形式进行保存。这样,翻译人员可以使用Excel软件来进行翻译工作,更加方便地管理编辑文本内容。 2. Excel文件转TS文件:将已经翻译完成的Excel文件重新转换为.ts文件,以便于软件开发人员将翻译后的文本重新整合到相应的软件项目中。 3. 易用定制性:该工具通常拥有简洁易用的用户界面,使用户能够轻松操作。同时,用户可以根据自身需求对工具进行定制,例如设置导入导出规则、选择特定的工作表或字段进行转换等。 这种TS翻译文件Excel文件互转工具的出现,极大地简化了软件国际化本地化过程中的翻译工作。开发人员可以方便地提供待翻译的文本,翻译人员可以利用Excel的强大功能进行翻译,而后再由开发人员将翻译结果重新整合到软件项目中。这种工具的存在提高了翻译的效率,减少了出错的可能性,为软件国际化的实施带来了便利。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值