160 lines
7.4 KiB
Markdown
160 lines
7.4 KiB
Markdown
---
|
|
title: Czkawka
|
|
created: 2026-06-07
|
|
updated: 2026-06-07
|
|
type: app
|
|
tags: [catalogue, automation, deduplication, file-management, rust, desktop, cli]
|
|
confidence: high
|
|
contested: false
|
|
sources: [https://selfh.st/apps/?tag=Automation, https://github.com/qarmin/czkawka]
|
|
---
|
|
|
|
# 🧹 Czkawka
|
|
|
|
> **Le détecteur de doublons ultrarapide écrit en Rust** — libérez des gigaoctets de votre NAS en quelques minutes en trouvant fichiers identiques, photos similaires, audios dupliqués, dossiers vides et bien plus. 10x plus rapide que les alternatives historiques.
|
|
|
|
## 📋 Informations Générales
|
|
|
|
| Champ | Valeur |
|
|
| :--- | :--- |
|
|
| **Site web** | [github.com/qarmin/czkawka](https://github.com/qarmin/czkawka) |
|
|
| **GitHub** | [qarmin/czkawka](https://github.com/qarmin/czkawka) |
|
|
| **License** | MIT |
|
|
| **Langage** | Rust (cœur) + GTK4 (GUI) / CLI |
|
|
| **Étoiles GitHub** | 1 067 ⭐ (cette stat) / 26k+ en réalité |
|
|
| **Dernière MAJ** | 2026-06-02 |
|
|
| **Catégorie** | [[cat-automation\|Automation]] |
|
|
|
|
## 📝 Description
|
|
|
|
**Czkawka** (prononcer *tchakafka*, à la polonaise : le mot signifie « hoquet » en argot, comme le hoquet de votre disque qui a besoin de place) est l'**outil de nettoyage de fichiers le plus moderne** de l'écosystème open source. Écrit en **Rust** pour exploiter le parallélisme massif des processeurs modernes, il scanne des millions de fichiers en quelques minutes là où les anciens outils mettaient des heures.
|
|
|
|
Le projet est né d'une frustration : **FSlint** et **dupeGuru** (les classiques) sont restés bloqués à Python 2 et GTK 2 pendant des années. Czkawka les a remplacés en offrant **les mêmes fonctionnalités en beaucoup plus rapide, avec une UI GTK4 moderne** (Adwaita) et une **CLI** complète pour automatisation serveur. La version GUI est multi-plateforme (Linux, macOS, Windows), la version **CLI tourne headless** sur n'importe quel serveur (idéal pour un NAS).
|
|
|
|
**Fonctionnalités principales** :
|
|
- ✅ **Fichiers en double** : détection par hash (Blake3, xxHash) — beaucoup plus rapide que MD5
|
|
- ✅ **Photos similaires** : similarité visuelle via hachage perceptuel (permet de trouver des photos recadrées/redimensionnées)
|
|
- ✅ **Dossiers en double** : détection par arborescence + contenu
|
|
- ✅ **Fichiers temporaires** : cache navigateur, logs anciens, thumbnails
|
|
- ✅ **Vides dossiers / fichiers vides**
|
|
- ✅ **Fichiers volumineux** : top N par taille
|
|
- ✅ **Fichiers invalides** : images, vidéos, audios corrompus
|
|
- ✅ **Extensions identiques** : détecter `.jpeg` et `.jpg` du même fichier
|
|
- ✅ **Noms similaires** : "IMG_001.jpg" vs "IMG_001 (1).jpg"
|
|
- ✅ **Symlinks cassés**
|
|
- ✅ **Multi-thread agressif** : utilise tous les cœurs CPU
|
|
- ✅ **CLI** complète pour scripting et cron
|
|
- ✅ **Cache** : scans incrémentaux, le second scan est instantané
|
|
- ⚠️ **Aucune modification automatique** : Czkawka liste, l'humain décide (sécurité)
|
|
|
|
**Performance typique** : sur un NAS avec 1 million de fichiers (1 To), un scan doublons prend **5-15 minutes** avec 8 threads. dupeGuru mettrait 2-3 heures. fdupes ~1 heure.
|
|
|
|
## 🚀 Installation
|
|
|
|
### Option 1 : Docker (CLI headless, idéal NAS/script)
|
|
```yaml
|
|
# docker-compose.yml
|
|
services:
|
|
czkawka-cli:
|
|
image: docker.io/jlesage/czkawka-cli:latest
|
|
container_name: czkawka
|
|
restart: "no"
|
|
volumes:
|
|
- /mnt/nas:/data:ro # répertoire à scanner
|
|
- czkawka-cache:/cache # cache des hashes
|
|
- czkawka-reports:/reports # rapports générés
|
|
command: >
|
|
czkawka_cli dup
|
|
--directories /data
|
|
--hash-type blake3
|
|
--size-unit binary
|
|
--json-results /reports/dup-report.json
|
|
```
|
|
|
|
Lancement manuel : `docker compose run --rm czkawka-cli` puis choisir la sous-commande.
|
|
|
|
### Option 2 : Binaire Linux natif
|
|
```bash
|
|
# Via cargo (depuis les sources)
|
|
cargo install czkawka_cli
|
|
|
|
# Ou binaire pré-compilé
|
|
wget https://github.com/qarmin/czkawka/releases/latest/download/czkawka_cli_linux_amd64.tar.gz
|
|
tar -xzf czkawka_cli_linux_amd64.tar.gz
|
|
sudo mv czkawka_cli /usr/local/bin/
|
|
|
|
# Scan doublons sur /mnt/nas/photos
|
|
czkawka_cli dup --directories /mnt/nas/photos --hash-type blake3
|
|
```
|
|
|
|
### Option 3 : Paquets distro
|
|
```bash
|
|
# Ubuntu/Debian (souvent disponible)
|
|
sudo apt install czkawka
|
|
|
|
# Arch
|
|
sudo pacman -S czkawka
|
|
|
|
# Fedora
|
|
sudo dnf install czkawka
|
|
```
|
|
|
|
### Option 4 : GUI (Linux/macOS/Windows)
|
|
- **Flatpak** : `flatpak install flathub com.github.qarmin.czkawka`
|
|
- **Snap** : `sudo snap install czkawka`
|
|
- **Windows** : `.exe` disponible sur la page Releases
|
|
|
|
## ⚙️ Configuration
|
|
|
|
- **`--hash-type`** : choisir `blake3` (rapide, sécurisé) ou `xxh3` (le plus rapide)
|
|
- **`--thread-number N`** : par défaut = nb de cœurs, à réduire sur un NAS en production
|
|
- **`--minimal-file-size 1MB`** : ignorer les fichiers < taille donnée
|
|
- **`--allowed-extensions`** : filtrer par extension (`jpg,png,mp4`)
|
|
- **`--json-results`** / `--delete-method`** : choisir entre rien (safe), **corbeille**, ou **suppression définitive** (à éviter)
|
|
- **Cache** : `~/.local/share/czkawka/` — **sauvegarder** pour éviter de re-scanner après reboot
|
|
|
|
## 🔗 Alternatives
|
|
|
|
### Open Source
|
|
- **fdupes** — le classique Unix, CLI only, plus lent (Python+hash MD5)
|
|
- **jdupes** — fork de fdupes, plus rapide, en C
|
|
- **dupeGuru** — la référence historique, multi-OS, GUI, mais Python 2 + Qt
|
|
- **FSlint** — encore plus vieux, GTK 2, quasi-abandonné
|
|
- **rdfind** — CLI, gère les symlinks, UNIX pur
|
|
- **rmlint** — rapide, en C, format de sortie riche
|
|
- **BleachBit** — plus orienté "cache système" que "doublons"
|
|
- **SnapRAID/Btrfs/ZFS dedup** — dédup au niveau filesystem (online)
|
|
|
|
### Propriétaires (ce que Czkawka remplace)
|
|
- **Easy Duplicate Finder** — 40 $, Windows only
|
|
- **Duplicate Cleaner Pro** — 30 $, Windows
|
|
- **Disk Savvy** — 80 $, Windows server
|
|
- **Cloud-apps intégrées** : Google Photos "similar", Apple Photos "duplicates", Dropbox "file requests" (limités)
|
|
- **Total Commander / Beyond Compare** — plugins payants de dédup
|
|
|
|
## 🔒 Sécurité
|
|
|
|
- ⚠️ **Ne JAMAIS lancer avec `--delete-method delete` sur un premier scan** : vous pourriez perdre des fichiers importants
|
|
- ✅ Toujours commencer par `--delete-method none` pour **prévisualiser** le rapport
|
|
- Le mode **corbeille** (`--delete-method trash`) est le plus sûr
|
|
- **Sauvegarder** les fichiers avant de lancer une opération massive (`rsync` ou `borg backup`)
|
|
- **Permissions** : Czkawka n'a besoin que de **lecture** sur les dossiers scannés — ne jamais l'exécuter en root sur un serveur en prod
|
|
- **Logs** : garder les rapports JSON pour audit (qui a supprimé quoi)
|
|
- **Photos similaires** : attention, l'algorithme peut signaler des photos différentes mais visuellement proches (chevaux, paysages) — toujours vérifier manuellement
|
|
|
|
## 📚 Ressources
|
|
|
|
- [Dépôt GitHub](https://github.com/qarmin/czkawka)
|
|
- [Wiki officielle](https://github.com/qarmin/czkawka/wiki)
|
|
- [Comparatif de performances](https://github.com/qarmin/czkawka#performance)
|
|
- [Docker Hub](https://hub.docker.com/r/jlesage/czkawka-cli)
|
|
- [Article korben.info (FR)](https://korben.info/czkawka-trouver-fichiers-doubles.html)
|
|
- [Reddit r/selfhosted](https://www.reddit.com/r/selfhosted/comments/1h7yrdn/czkawka_is_a_must_have_for_any_nas/)
|
|
|
|
## 🔗 Pages Liées
|
|
- [[cat-automation]] — Catégorie Automation
|
|
- [[cat-backups]] — Catégorie Backups (avant tout nettoyage, sauvegarder !)
|
|
- [[recettes-docker-compose]] — Templates Docker
|
|
- [[securisation-home-lab]] — Sécurité
|
|
- [[Catalogue-Self-Hosted]] — Hub
|