Har kört 'rmlint' länge - görs helst direkt på NAS:en eller servern om den går att installera eller går att kompilera upp i nasen.
en ren CLI-program som körs i terminal eller över ssh.
Förutom att ta bort dubbletter, sätta hårda länkar eller om det rullar på en BTRFS-filsystem - använda reflink (som hård länk men filen är en egen individ med egen inod och rättigheter och ägare som kan modifieras utan att det påverkar någon annan ställe i filträdet vilket det annars gör med hårda länkar, och inledningsvis delar den samma fysiska sektorer som orginalet den gjordes ifrån) då kan den även jämföra filträn och tex. ta bort alla filer som fins på den jämförda klientfilträdet om filerna också existerar på masterfilträdet men rör inga dubblettfiler på master-sidan.
Rmlint tar också hänsyn till lagringen så att läsningen inte ger överdrivet mycket läshuvudsförflyttning och försöker läsa smart på klientfilträdet och master-filträdet i anständig stora omgångar eller båda parallellt om de är inflätade i varandra - i början kan det upplevas att det trashar mycket på lagringen - men det är för att kartlägga filernas placering fysiskt på lagringsytan för att efter en stund försöka läsa dessa så linjärt i stora block som det går. Tex. om det är en master och en snapshot på BTRFS-filsystemet så läses sektorerna in fysiskt bara en enda gång då filerna i snapshot och i mastern är samma fysiska sektorer och klaras av samtidigt och inte i omgångar långt efter varandra.
Själva 'rmlint' tar inte bort några filer utan den genererar ett shellscript som gör jobbet vid en separat körning senare - och dessutom kollar att filen på masterträdet fortfarande är kvar innan filen på klientmappen raderas eller länkas om när scriptet senare väl körs - man har alltså chans att titta och editera i skriptet i en editor innan det körs - kan också levereras i andra format som json mfl. om man vill använda andra program som exekverar filraderingen eller granskar denna.
Rmlint använder hashar (fins flera olika att välja på som Blake2b (default) vilket är snabbare och nästa lika kryptografiskt starkt som tex. SHA256/512 vilket har betydelse på en enklare NAS som inte har fungerande HW-stöd för hashning) för att jämföra och kontrollerar på innehållet, inte filnamnet, och vid jämförelse mellan mappar så spelar det ingen roll i klientträdet filerna finns medans filerna i masterträdet rörs ej även om det finns multipla kopior inom masterträdet (vilket styrs enligt "klient1 klient2 ... // master1 master2 ..." efter kommandot med optioner, filmapparna kan alltså vara ett flertal på var sida av '//').
Den kan också spara hashar och tidstämplar med extension på var fil den går igenom vilket gör att en senare körning kan gå väldigt fort då den inte behöver hasha om filerna igen. Dessa följer med vid snapshot på BTRFS vilket gör att man kan snabbt gå igenom en snapshot mot mastern på enstaka minutnivå vid miljon filer och ett par TB storlek - sedan radera alla filer som är lika mastern i snapshoten och det som är olika är kvar i snapshoten.
Det är också anledningen att man bör köra programmet lokalt på NAS:en och inte via SMB/NFS då stödet för attribut mot ext4/BTRFS är från obefintligt till dåligt över nätverk - och sedan är det tveksamt att länkning med 'reflink' (på btrfs-filsystem) fungerar över nätverk.