Vyhledávání na webu

5 nejlepších nástrojů k nalezení a odstranění duplicitních souborů v Linuxu


Uspořádání vašeho domovského adresáře nebo dokonce systému může být obzvláště obtížné, pokud máte ve zvyku stahovat všechny druhy věcí z internetu pomocí vašich správců stahování.

Často můžete zjistit, že jste si stáhli stejné mp3, pdf a epub (a všechny druhy dalších přípon souborů) a zkopírovali je do různých adresářů. To může způsobit, že se vaše adresáře zaplní všemi druhy zbytečných duplicitních věcí.

V tomto tutoriálu se naučíte, jak najít a odstranit duplicitní soubory v Linuxu pomocí nástrojů příkazového řádku rdfind, fdupes a rmlint a také pomocí nástrojů GUI s názvem DupeGuru a FSlint.

Upozornění – vždy buďte opatrní, co ve svém systému smažete, protože to může vést k nechtěné ztrátě dat. Pokud používáte nový nástroj, vyzkoušejte jej nejprve v testovacím adresáři, kde smazání souborů nebude problém.

1. Rdfind – Najít duplicitní soubory v Linuxu

Rdfind pochází z vyhledávání redundantních dat, což je bezplatný nástroj příkazového řádku používaný k nalezení duplicitních souborů ve více adresářích nebo v nich. Rekurzivně prohledává adresáře a identifikuje soubory, které mají identický obsah, což vám umožňuje provádět příslušné akce, jako je mazání nebo přesun duplikátů.

Rdfind používá algoritmus ke klasifikaci souborů a zjišťuje, který z duplikátů je původní soubor, a zbytek považuje za duplikáty.

Pravidla hodnocení jsou:

  • Pokud byl A nalezen při skenování vstupního argumentu dříve než B, A má vyšší hodnocení.
  • Pokud bylo A nalezeno v hloubce nižší než B, má A vyšší hodnocení.
  • Pokud bylo A nalezeno dříve než B, má A vyšší hodnocení.

Poslední pravidlo se používá zejména v případě, že jsou ve stejném adresáři nalezeny dva soubory.

Nainstalujte Rdfind na Linux

Chcete-li nainstalovat rdfind v systému Linux, použijte následující příkaz podle vaší distribuce systému Linux.

sudo apt install rdfind         [On Debian, Ubuntu and Mint]
sudo yum install rdfind         [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/rdfind  [On Gentoo Linux]
sudo apk add rdfind             [On Alpine Linux]
sudo pacman -S rdfind           [On Arch Linux]
sudo zypper install rdfind      [On OpenSUSE]    

Chcete-li spustit rdfind v adresáři, jednoduše zadejte rdfind a cílový adresář.

rdfind /home/user

Jak můžete vidět, rdfind uloží výsledky do souboru s názvem results.txt umístěného ve stejném adresáři, ze kterého jste program spustili. Soubor obsahuje všechny duplicitní soubory, které rdfind našel. Pokud chcete, můžete soubor zkontrolovat a odstranit duplicitní soubory ručně.

Další věc, kterou můžete udělat, je použít volbu -dryrun, která poskytne seznam duplikátů, aniž byste museli provádět jakékoli akce:

rdfind -dryrun true /home/user

Když najdete duplikáty, můžete je nahradit pevnými odkazy.

rdfind -makehardlinks true /home/user

A pokud chcete odstranit duplikáty, můžete spustit.

rdfind -deleteduplicates true /home/user

Chcete-li zkontrolovat další užitečné možnosti rdfind, můžete použít příručku rdfind.

man rdfind 

2. Fdupes – Kontrola duplicitních souborů v Linuxu

Fdupes je další program příkazového řádku, který vám umožňuje identifikovat duplicitní soubory ve vašem systému. Prohledává adresáře rekurzivně, porovnává velikosti souborů a obsah, aby identifikoval duplikáty.

K určení duplicitních souborů používá následující metody:

  • Porovnání dílčích podpisů md5sum
  • Porovnání úplných podpisů md5sum
  • ověřování porovnávání bajtů

Stejně jako rdfind má podobné možnosti:

  • Hledejte rekurzivně
  • Vyloučit prázdné soubory
  • Zobrazuje velikost duplicitních souborů
  • Okamžitě odstraňte duplikáty
  • Vyloučit soubory s jiným vlastníkem

Nainstalujte Fdupes v Linuxu

Chcete-li nainstalovat fdupes v systému Linux, použijte následující příkaz podle vaší distribuce systému Linux.

sudo apt install fdupes         [On Debian, Ubuntu and Mint]
sudo yum install fdupes         [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/fdupes  [On Gentoo Linux]
sudo apk add fdupes             [On Alpine Linux]
sudo pacman -S fdupes           [On Arch Linux]
sudo zypper install fdupes      [On OpenSUSE]    

Syntaxe Fdupes je podobná syntaxi rdfind. Jednoduše zadejte příkaz následovaný adresářem, který chcete skenovat.

fdupes <dir>

Chcete-li vyhledávat soubory rekurzivně, budete muset zadat -r volbu jako je tato.

fdupes -r <dir>

Můžete také zadat více adresářů a určit adresář, který se má prohledávat rekurzivně.

fdupes <dir1> -r <dir2>

Chcete-li, aby fdupes vypočítal velikost duplicitních souborů, použijte volbu -S.

fdupes -S <dir>

Chcete-li získat souhrnné informace o nalezených souborech, použijte volbu -m.

fdupes -m <dir>

Nakonec, pokud chcete smazat všechny duplikáty, použijte -d možnost, jako je tato.

fdupes -d <dir>

Fdupes se zeptá, který z nalezených souborů má smazat. Budete muset zadat číslo souboru:

Řešením, které rozhodně nedoporučujeme, je použití volby -N, která povede k zachování pouze prvního souboru.

fdupes -dN <dir>

Chcete-li získat seznam dostupných možností pro použití s fdupes, projděte si stránku nápovědy spuštěním.

fdupes -help

3. Rmlint – Odstranit duplicitní soubory

Rmlint je nástroj příkazového řádku, který se používá k vyhledání a odstranění duplicitních a lint-like souborů v systémech Linux. Pomáhá identifikovat soubory s identickým obsahem a také různé formy redundance nebo lint, jako jsou prázdné soubory, nefunkční symbolické odkazy a osiřelé soubory.

Nainstalujte Rmlint na Linux

Chcete-li nainstalovat Rmlint v systému Linux, použijte následující příkaz podle vaší distribuce systému Linux.

sudo apt install rmlint         [On Debian, Ubuntu and Mint]
sudo yum install rmlint         [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/rmlint  [On Gentoo Linux]
sudo apk add rmlint             [On Alpine Linux]
sudo pacman -S rmlint           [On Arch Linux]
sudo zypper install rmlint      [On OpenSUSE]    

4. dupeGuru – Najděte duplicitní soubory v Linuxu

dupeGuru je open-source a multiplatformní nástroj, který lze použít k nalezení duplicitních souborů v systému Linux. Nástroj může buď skenovat názvy souborů nebo obsah v jedné nebo více složkách. Umožňuje vám také najít název souboru, který je podobný souborům, které hledáte.

dupeGuru je k dispozici v různých verzích pro platformy Windows, Mac a Linux. Jeho funkce rychlého fuzzy párovacího algoritmu vám pomůže najít duplicitní soubory během minuty. Je přizpůsobitelný, můžete vytáhnout přesně duplicitní soubory, které chcete, a vymazat nechtěné soubory ze systému.

Nainstalujte dupeGuru na Linux

Chcete-li nainstalovat dupeGuru v Linuxu, použijte následující příkaz podle vaší distribuce Linuxu.

sudo apt install dupeguru         [On Debian, Ubuntu and Mint]
sudo yum install dupeguru         [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/dupeguru  [On Gentoo Linux]
sudo apk add dupeguru             [On Alpine Linux]
sudo pacman -S dupeguru           [On Arch Linux]
sudo zypper install dupeguru      [On OpenSUSE]    

5. FSlint – Vyhledávač duplicitních souborů pro Linux

FSlint je bezplatný nástroj, který se používá k nalezení a vyčištění různých forem lint v souborovém systému. Hlásí také duplicitní soubory, prázdné adresáře, dočasné soubory, duplicitní/konfliktní (binární) názvy, špatné symbolické odkazy a mnoho dalších. Má režimy příkazového řádku i GUI.

Je však důležité poznamenat, že od mého přerušení znalostí v září 2022 byl FSlint naposledy aktualizován v roce 2013 a nemusí být aktivně udržován nebo kompatibilní s novějšími distribucemi Linuxu.

Nainstalujte FSlint na Linux

Chcete-li nainstalovat FSlint v systému Linux, použijte následující příkaz podle vaší distribuce systému Linux.

sudo apt install fslint         [On Debian, Ubuntu and Mint]
sudo yum install fslint         [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/fslint  [On Gentoo Linux]
sudo apk add fslint             [On Alpine Linux]
sudo pacman -S fslint           [On Arch Linux]
sudo zypper install fslint      [On OpenSUSE]    

Závěr

Jedná se o velmi užitečné nástroje k nalezení duplicitních souborů ve vašem systému Linux, ale při mazání takových souborů byste měli být velmi opatrní.

Pokud si nejste jisti, zda soubor potřebujete nebo ne, bylo by lepší vytvořit zálohu tohoto souboru a zapamatovat si jeho adresář, než jej smažete. Máte-li jakékoli dotazy nebo připomínky, odešlete je v sekci komentářů níže.