2
0
mirror of https://github.com/qarmin/czkawka synced 2024-10-31 21:20:19 +00:00
czkawka/README.md

192 lines
12 KiB
Markdown
Raw Normal View History

2020-12-18 12:48:23 +00:00
![com github qarmin czkawka](https://user-images.githubusercontent.com/41945903/102616149-66490400-4137-11eb-9cd6-813b2b070834.png)
2020-09-27 06:32:44 +00:00
**Czkawka** (_tch•kav•ka_ (IPA: [ʈ͡ʂkafka]), "hiccup" in Polish) is a simple, fast and free app to remove unnecessary files from your computer.
2020-10-01 14:54:26 +00:00
2020-09-27 06:32:44 +00:00
## Features
- Written in memory-safe Rust
- Amazingly fast - due to using more or less advanced algorithms and multithreading
- Free, Open Source without ads
2022-01-15 18:02:27 +00:00
- Multiplatform - works on Linux, Windows, macOS, FreeBSD and many more
- Cache support - second and further scans should be much faster than the first one
- CLI frontend - for easy automation
2022-05-22 08:59:09 +00:00
- GUI frontend - uses GTK 4 framework and looks similar to FSlint
2021-11-20 08:43:24 +00:00
- No spying - Czkawka does not have access to the Internet, nor does it collect any user information or statistics
- Multilingual - support multiple languages like Polish, English or Italian
2020-09-27 06:32:44 +00:00
- Multiple tools to use:
2021-12-01 21:34:49 +00:00
- Duplicates - Finds duplicates based on file name, size or hash
- Empty Folders - Finds empty folders with the help of an advanced algorithm
- Big Files - Finds the provided number of the biggest files in given location
- Empty Files - Looks for empty files across the drive
- Temporary Files - Finds temporary files
- Similar Images - Finds images which are not exactly the same (different resolution, watermarks)
2022-01-15 18:02:27 +00:00
- Similar Videos - Looks for visually similar videos
- Same Music - Searches for music with the same artist, album etc.
- Invalid Symbolic Links - Shows symbolic links which point to non-existent files/directories
- Broken Files - Finds files that are invalid or corrupted
- Bad Extensions - Lists files whose content not match with their extension
2020-08-26 18:49:43 +00:00
![Czkawka](https://user-images.githubusercontent.com/41945903/145280350-506f7e94-4db0-4de7-a68d-6e7c26bbd2bf.gif)
2020-12-31 08:29:20 +00:00
## Supported OS
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+
If you are looking for older version that use GTK 3 and have support for more OS(like e.g. Ubuntu 20.04), look at [4.1.0](https://github.com/qarmin/czkawka/releases/tag/4.1.0) or older versions.
## How do I use it?
You can find the instructions on how to use Czkawka [**here**](instructions/Instruction.md).
2020-12-31 08:29:20 +00:00
2021-12-01 21:34:49 +00:00
Some helpful tricks you can find [**here**](instructions/Instruction.md#tips-tricks-and-known-bugs)
## Installation
Installation instructions with download links you can find [**here**](instructions/Installation.md).
## Compilation
If you want to try and develop Czkawka or just use the latest available feature, you may want to look at the [**compilation instructions**](instructions/Compilation.md).
## Benchmarks
2020-10-23 15:50:20 +00:00
2021-05-07 15:04:16 +00:00
Since Czkawka is written in Rust and it aims to be a faster alternative to FSlint or DupeGuru which are written in Python, we need to compare the speed of these tools.
2022-05-31 15:52:55 +00:00
I tested it on a 256 GB SSD and an i7-4770 CPU.
I prepared a disk and performed a test without any folder exceptions and with disabled ignoring of hard links. The disk contained 363 215 files, took 221,8 GB and had 62093 duplicate files in 31790 groups which occupied 4,1 GB.
I set the minimal file size to check to 1KB on all programs.
2022-06-18 08:59:46 +00:00
| 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 |
2020-10-23 15:50:20 +00:00
2021-05-07 15:04:16 +00:00
I used Mprof for checking memory usage of FSlint and DupeGuru, and Heaptrack for Czkawka.
2022-06-18 08:59:46 +00:00
| 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 |
2021-05-07 15:04:16 +00:00
2020-10-23 15:50:20 +00:00
In Dupeguru, I enabled checking images with different dimensions to match Czkawka behavior.
Both apps use a caching mechanism, so the second scan is really fast.
2020-10-23 15:50:20 +00:00
Similar images which check 10949 files that occupied 6.6 GB
2020-10-23 15:50:20 +00:00
2022-06-18 08:59:46 +00:00
| 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 |
2020-10-23 15:50:20 +00:00
Similar images which check 349 image files that occupied 1.7 GB
2020-10-23 15:50:20 +00:00
2022-06-18 08:59:46 +00:00
| 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 |
2020-10-23 15:50:20 +00:00
2021-02-11 18:04:39 +00:00
## Comparison to other tools
2020-10-23 15:50:20 +00:00
Bleachbit is a master at finding and removing temporary files, while Czkawka only finds the most basic ones. So these two apps shouldn't be compared directly or be considered as an alternative to one another.
2022-04-23 22:05:21 +00:00
| | Czkawka | FSlint | DupeGuru | Bleachbit |
|:------------------------:|:-----------:|:----------:|:-----------------:|:-----------:|
| Language | Rust | Python | Python/Obj-C | Python |
| OS | Lin,Mac,Win | Lin | Lin,Mac,Win | Lin,Mac,Win |
2022-05-22 08:59:09 +00:00
| Framework | GTK 4 | PyGTK2 | Qt 5 (PyQt)/Cocoa | PyGTK3 |
2022-04-23 22:05:21 +00:00
| 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 |
2020-10-02 06:58:02 +00:00
2021-07-16 04:51:54 +00:00
## Other apps
2022-01-15 18:02:27 +00:00
There are many similar applications to Czkawka on the Internet, which do some things better and some things worse:
### GUI
- [DupeGuru](https://github.com/arsenetar/dupeguru) - Many options to customize; great photo compare tool
- [FSlint](https://github.com/pixelb/fslint) - A little outdated, but still have some tools not available in Czkawka
- [AntiDupl.NET](https://github.com/ermig1979/AntiDupl) - Shows a lot of metadata of compared images
- [Video Duplicate Finder](https://github.com/0x90d/videoduplicatefinder) - Finds similar videos(surprising, isn't it), supports video thumbnails
### CLI
Due to limited time, the biggest emphasis is on the GUI version so if you are looking for really good and feature-packed console apps, then take a look at these:
- [Fclones](https://github.com/pkolaczk/fclones) - One of the fastest tools to find duplicates; it is written also in Rust
2022-05-31 15:52:55 +00:00
- [Rmlint](https://github.com/sahib/rmlint) - Nice console interface and also is feature packed
- [RdFind](https://github.com/pauldreik/rdfind) - Fast, but written in C++ ¯\\\_(ツ)\_/¯
2021-07-16 04:51:54 +00:00
2020-10-02 06:58:02 +00:00
## Contributions
2021-07-16 04:51:54 +00:00
Contributions to this repository are welcome.
2020-10-02 06:58:02 +00:00
You can help by creating:
- Bug reports - memory leaks, unexpected behavior, crashes
2020-10-02 06:58:02 +00:00
- Feature proposals - proposal to change/add/delete some features
- Pull Requests - implementing a new feature yourself or fixing bugs.
If the change is bigger, then it's a good idea to open a new issue to discuss changes, but issues with label `PR welcome` are already checked and accepted.
- Documentation - There is an [instruction](instructions/Instruction.md) which you can improve.
- Translations - Instruction how to translate files is available [here](instructions/Translations.md)
- External contributions - App use big number of external libraries like [lofty](https://github.com/Serial-ATA/lofty-rs), [image-rs](https://github.com/image-rs/image) or [symphonia](https://github.com/pdeljanov/Symphonia) so improving this libraries will automatically improve Czkawka
2020-10-02 06:58:02 +00:00
You can also help by doing other things:
- Creating text articles - [LinuxUprising](https://www.linuxuprising.com/2021/03/find-and-remove-duplicate-files-similar.html) or [Ubunlog](https://ubunlog.com/en/czkawka-finds-and-removes-empty-and-broken-duplicate-files/)
- Adding Czkawka to repositories - [Alpine Linux](https://pkgs.alpinelinux.org/packages?name=czkawka&branch=edge) or [NixOS](https://github.com/NixOS/nixpkgs/pull/116441) or [OpenMandriva](https://github.com/OpenMandrivaAssociation/czkawka)
- Creating videos - [First Video](https://www.youtube.com/watch?v=CWlRiTD4vDc) or [Spanish Tutorial](https://www.youtube.com/watch?v=V9x-pHJRmKY)
- Recommending it to others
2020-09-30 08:06:40 +00:00
## Name
2021-07-16 04:51:54 +00:00
Czkawka is a Polish word which means _hiccup_.
2020-12-21 17:22:59 +00:00
I chose this name because I wanted to hear people speaking other languages pronounce it, so feel free to spell it the way you want.
2020-12-21 17:22:59 +00:00
This name is not as bad as it seems, because I was also thinking about using words like _żółć_, _gżegżółka_ or _żołądź_,
but I gave up on these ideas because they contained Polish characters, which would cause difficulty in searching for the project.
2020-09-27 06:32:44 +00:00
At the beginning of the program creation, if the response concerning the name was unanimously negative, I prepared myself
for a possible change of the name of the program, and the opinions were extremely mixed.
2020-10-23 15:50:20 +00:00
2020-08-26 18:49:43 +00:00
## License
2020-09-04 21:09:11 +00:00
Code is distributed under MIT license.
2020-09-30 08:06:40 +00:00
Icon was created by [jannuary](https://github.com/jannuary) and licensed CC-BY-4.0.
2020-12-17 15:56:36 +00:00
2022-06-18 08:59:46 +00:00
Windows dark theme is used from project [WhiteSur](https://github.com/slypy/whitesur-gtk4-theme) with MIT license.
2020-12-21 17:22:59 +00:00
2022-06-18 08:59:46 +00:00
Some icons were taken from [ReShot](https://www.reshot.com) site and are licensed under Reshot Free License.
2022-04-03 14:03:01 +00:00
The program is completely free to use.
2020-09-30 08:06:40 +00:00
"Gratis to uczciwa cena" - "Free is a fair price"
## Thanks
Big thanks to Pádraig Brady, creator of fantastic FSlint, because without his work I wouldn't create this tool.
Thanks also to all the people who create patches for this program, make it available on other systems, create videos, articles about it etc.
2022-05-31 15:52:55 +00:00
Also, I really appreciate work of people that create crates on which Czkawka is based and for that I try to report bugs to make it even better.
## Donations
If you are using the app, I would appreciate a donation for its further development, which can be done [here](https://github.com/sponsors/qarmin).