Bestanden opruimen met Linux tool Detox

Daniel Dupré
0

Bestandsnamen met speciale tekens kunnen voor onaangename verrassingen zorgen, vooral wanneer je bestanden tussen verschillende besturingssystemen uitwisselt. De Linux tool Detox transformeert automatisch bestandsnamen in onschadelijke namen.

Het bestand Aankoop | Dupré online (factuur).pdf kan zonder problemen onder Linux worden opgeslagen. Windows struikelt echter over het speciale karakter | en weigert daarna toegang. Als een programma in de clinch ligt met de tekencodering, gaan speciale tekens vaak verloren. Je boft dan nog als een é op het scherm naar een ? verandert. Als je op de opdrachtregel werkt, is het ook nog eens een gedoe met spaties en haakjes. Vooral onder Linux, willen Bash en veel andere shells losse woorden graag als parameters interpreteren. Je moet dan dus altijd opletten dat je de volledige bestandsnaam tussen aanhalingstekens zet. Als een snel geschreven shell-script dit negeert, zal het in het ergste geval het bestand naar het digitale hiernamaals sturen.

Oplosmiddel

Als je alle hierboven genoemde problemen vanaf het begin wilt vermijden, moet je speciale tekens en spaties consequent uit alle bestandsnamen verwijderen. Onder Linux kun je daar het tooltje Detox voor gebruiken. Met de tool kun je alle denkbare speciale tekens door geschikte alternatieven vervangen. Detox verwijdert of vervangt alle karakters die niet in de 7-bit ASCII karakterset horen. Als speciale tekens niet op een zinvolle manier kunnen worden vervangen, verwijdert Detox ze uit de bestandsnaam.

Detox vervangt vervolgens alle spaties en potentieel problematische of misleidende tekens. Denk aan tekens zoals haakjes, $ en @. Ook een minteken dat aan het begin van een bestandsnaam staat wordt verwijderd. Afkortingen die vaak in internetadressen voorkomen, zoals %20, worden door Detox omgeruild voor het overeenkomstige teken, bijvoorbeeld een spatie, wat op zijn beurt dan weer door een underscore (‘_’) kan worden vervangen. Die vervangingen kunnen resulteren in reeksen van meerdere mintekens of underscores, die de tool Detox dan weer automatisch tot één reduceert. Indien dat dubbele namen oplevert, zal Detox de naam niet omzetten en melden dat er al een bestand met dezelfde naam bestaat.

detox

Met Detox vervang je in Linux eenvoudig bestandsnamen met tekens die problemen kunnen veroorzaken: hier worden de pipe (|) en de spaties in de nieuwe bestandsnaam vervangen door underscores (‘_’) , de é wordt een e zonder accent aigu.

Kickstart

Hoewel de ontwikkelaar begin augustus 2020 officieel is gestopt met de ontwikkeling van Detox, blijft de tool het werk zonder problemen doen. Ubuntu en sommige andere distributies bieden hem zelfs aan in hun repository’s. Als het je niet lukt om hem via je softwarebeheer te installeren, kun je de broncode van de laatste versie vinden op GitHub.

Om de bestandsnamen aan te passen, ga je in de terminal naar de directory met de corresponderende bestanden en roep je detox -n * op. Met -n start je een testrun waarin Detox de bestandsnamen toont zoals het die wil genereren. Als je het ermee eens bent, kun je de bestanden dan definitief hernoemen met detox -v *. Als je de parameter -r toevoegt, past Detox ook alle bestanden in de subdirectory’s aan. Als je maar één bestandsnaam wilt wijzigen, geef die dan rechtstreeks aan Detox mee: detox ” Aankoop | Dupré online (factuur).pdf“. Nadere informatie over het gebruik van de tool krijg je met het commando man detox.

(Deze tekst is verschenen in c’t 5/2021, p.139, met medewerking van Tim Schürmann)

 

Wil je op de hoogte blijven van het laatste IT-nieuws en de nieuwste online-artikelen? Meld je dan hier aan voor onze nieuwsbrief:

 

Meer handige workshops vind je in c't magazine nov/2021

Meer over

Software

Deel dit artikel

Lees ook

Workshop: Raspberry Pi met Bitwarden als wachtwoordkluis

Een workshop Bitwarden in Raspberry Pi als wachtwoordkluis en -server gebruiken en ­gegevens synchroniseren tussen meerdere apparaten.

Website zonder reclame en tracking en meer privacy instellen

Wil je ontspannen surfen naar een website zonder reclame, cookiebanners en tracking? Zo stel je het in en krijg je meer privacy op internet.

0 Praat mee
avatar
  Abonneer  
Laat het mij weten wanneer er