Files
2026-06-09 18:40:21 +02:00

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