Terminal pogryzł człowieka: detox
Niekiedy dziedziczymy albo odkrywamy zestaw plików o tak zaniedbanych nazwach, że aż gotuje się w nas poczucie przyzwoitości. Używanie w nazwach spacji to najmniejszy grzech – znaki specjalne, średniki, cudzysłowy, itp. Niechlujność niektórych użytkowników nie zna granic, a czasem nawet i programy nie pozostają bez winy. Jak to posprzątać i unormować? Najlepszym rozwiązaniem może okazać się nadzwyczaj skuteczny detox.
Detox to niewielki program, który potrafi hurtowo zamienić ciągi nieprzyzwoitych znaków w nazwach plików. Na dodatek jest bezpieczny w użyciu, gdyż w domyślnym jego wywołaniu i bez żadnych opcji nie jesteśmy w stanie nic sobie zepsuć (pliki nie znikną, nie zostaną nadpisane, itp.). Tym narzędziem automatycznie zamienimy znaki z którymi ciężko pracować (spacje, wspomniane cudzysłowy, znaki specjalne) na bardziej standardowe odpowiedniki (czyli np. zamiana spacji na _). Program oczyści również wizerunek plików z wszelkich natywnych naleciałości standardu UTF-8 i CP-1252 (a ludzie z CP-1252 na pokładzie to dopiero potrafią śmiecić).
Próbka możliwości?
#~/test$ ls
2".txt £§®.avi ósmy plik ósmego użytkownika:).txt "proba proba nr 1.txt "proba nr 2".txt test?#:::$.txt to.jest.wazne.xls
#~/test$ detox -v *
Scanning: 2".txt
2".txt -> 2_.txt
Scanning: £§®.avi
£§®.avi -> pound_reg_.avi
Scanning: ósmy plik ósmego użytkownika:).txt
ósmy plik ósmego użytkownika:).txt -> osmy_plik_osmego_uzytkownika-.txt
Scanning: "proba
"proba -> proba
Scanning: proba nr 1.txt
proba nr 1.txt -> proba_nr_1.txt
Scanning: "proba nr 2".txt
"proba nr 2".txt -> proba_nr_2_.txt
Scanning: test?#:::$.txt
test?#:::$.txt -> test_#_.txt
Scanning: to.jest.wazne.xls
#~/test$ ls
2_.txt osmy_plik_osmego_uzytkownika-.txt pound_reg_.avi proba proba_nr_1.txt proba_nr_2_.txt test_#_.txt to.jest.wazne.xls
To wszystko uzyskujemy bez żadnych parametrów (-v pokazuje która nazwa na co zostanie zamieniona). Jeżeli ktoś zechce doprecyzować działanie polecenia detox, to może posłużyć się krótką ściągawką:
usage: detox [-hLnrvV] [-f configfile] [-s sequence] [--dry-run] [--special] file [file ...] -f configfile choose which config file to use -h --help this message -L list available sequences and exit with -v ... dump sequence contents -n --dry-run do a dry run (don't actually do anything) -r be recursive (descend into subdirectories) --remove-trailing (deprecated) remove trailing _ and - before a period -s sequence choose which sequence to detox with --special work on links and special files -v be verbose -V show the current version
Detox znajdziemy w podstawowych repozytoriach większości dystrybucji – nie powinny wystąpić zatem żadne trudności w jego zainstalowaniu.