Linux - jak vyhledat duplicitní soubory
DD, potřeboval bych na linux ubuntu v adresáři home vyhledat duplicitní soubory, lze k tomu využít nějaký balíček nebo jen příkaz? Dík
Ahoj,
k hledání duplicitních souborů na GNU/Linux přes bash použij fdupes - je standardně v repositářích.
Takto vyhledáš duplicitní soubory v adresáři /home včetně podadresářů :
Takto vyhledáš duplicitní soubory mezi dvěma adresáři /home/user a /mnt/backup včetně podadresářů :
S parametrem
Výsledek pak je, že se ti to takto zeptá, který soubor zachovat (např. níže bylo nalezeno 199 duplicit):
Set 1 of 199, preserve files [1 - 2, all] (1848059712 bytes each).
(1=zachovat první, 2=zachovat druhý, all=zachovat oba)
To samé s tím, že se tě nebude fdupes ptát zda chceš soubor smazat:
Další možností je nástoj diff, takto porovnáš dva soubory a smažeš duplikát:
Pokud preferuješ grafické rozhraní, tak použij
Další alternativy jsou:
rdfind (CLI)
fslint (GUI)
dupeGuru (GUI)
Potřeboval jsem pak ještě nějaké ultra rychlé hledání (možných) duplicitních souborů tak, aby se nedělal sum (hash, md5 atd), což strašně trvá. Pro tento účel jsem chtěl hledat jen duplicitní soubory se stejnou velikostí, což je hned. Našel jsem k tomuto tento příkaz a funguje bezvadně = vrátí jen soubory, které mají stejnou velikost:
Případně duplicity dle shodného názvu:
ODPOVĚĎ
Ahoj,
k hledání duplicitních souborů na GNU/Linux přes bash použij fdupes - je standardně v repositářích.
Takto vyhledáš duplicitní soubory v adresáři /home včetně podadresářů :
fdupes -r /home
Takto vyhledáš duplicitní soubory mezi dvěma adresáři /home/user a /mnt/backup včetně podadresářů :
fdupes -r /home/user /mnt/backup
S parametrem
d
rovnou můžeš duplicitní soubory mazat a parametrem S
zobrazíš velikost:fdupes -rdS /home
Výsledek pak je, že se ti to takto zeptá, který soubor zachovat (např. níže bylo nalezeno 199 duplicit):
Set 1 of 199, preserve files [1 - 2, all] (1848059712 bytes each).
(1=zachovat první, 2=zachovat druhý, all=zachovat oba)
To samé s tím, že se tě nebude fdupes ptát zda chceš soubor smazat:
fdupes -rdN /home
Další možností je nástoj diff, takto porovnáš dva soubory a smažeš duplikát:
diff soubor1 soubor2 && rm soubor2
Pokud preferuješ grafické rozhraní, tak použij
fslint
.Další alternativy jsou:
rdfind (CLI)
fslint (GUI)
dupeGuru (GUI)
ODPOVĚĎ
Potřeboval jsem pak ještě nějaké ultra rychlé hledání (možných) duplicitních souborů tak, aby se nedělal sum (hash, md5 atd), což strašně trvá. Pro tento účel jsem chtěl hledat jen duplicitní soubory se stejnou velikostí, což je hned. Našel jsem k tomuto tento příkaz a funguje bezvadně = vrátí jen soubory, které mají stejnou velikost:
find /cesta/adresar -type f -printf "%10s\t%p\n" | sort --numeric | uniq --repeated --check-chars=10
Případně duplicity dle shodného názvu:
find /cesta/adresar -mindepth 1 -printf '%h %f\n' | sort -t ' ' -k 2,2 | uniq -f 1 --all-repeated=separate | tr ' ' '/'
Show english version