detox(1) clean up filenames


[-hnLrv ] [-s sequence ] [-f configfile ] [--dry-run ] [--special ] file ...


The utility renames files to make them easier to work with. It removes spaces and other such annoyances. It'll also translate or cleanup Latin-1 (ISO 8859-1) characters encoded in 8-bit ASCII, Unicode characters encoded in UTF-8, and CGI escaped characters.


is driven by a configurable series of filters, called a sequence. Sequences are covered in more detail in detoxrc(5) and are discoverable with the -L option. Some examples of default sequences are iso8859_1 and utf_8


The main options:

-f configfile
Use configfile instead of the default configuration files for loading translation sequences. No other config file will be parsed.
-h -help
Display helpful information.
List the currently available sequences. When paired with -v this option shows what filters are used in each sequence and any properties applied to the filters.
-n -dry-run
Doesn't actually change anything. This implies the -v option.
Recurse into subdirectories.
-s sequence
Use sequence instead of default.
Works on special files (including links). Normally ignores these files.
Be verbose about which files are being renamed.
Show the current version of .

Deprecated Options

Deprecated Options are options that were available in earlier versions of but have lost their meaning and are being phased out.

Removes _ and - after .'s in filenames. This was first provided in the 0.9 series of . After the introduction of sequences, it lost its meaning, as you could now determine the properties of wipeup through a particular sequence's configuration. It presently forces all instances of the wipeup filter to use remove trailing, regardless of what's actually in the config files.


The system-wide detoxrc file.
A user's personal detoxrc. Normally it extends the system-wide detoxrc, unless -f has been specified, in which case, it is ignored.
The default ISO 8859-1 translation table.
The default Unicode (UTF-8) translation table.


-s iso8859_1 -r -v -n /tmp/new_files
Will run the sequence iso8859_1 recursively, listing any changes, without changing anything, on the files of /tmp/new_files
-c my_detoxrc -L -v
Will list the sequences within my_detoxrc showing their filters and options.


was originally designed to clean up files that I had received from friends which had been created using other operating systems. It's trivial to create a filename with spaces, parenthesis, brackets, and ampersands under some operating systems. These have special meaning within FreeBSD and Linux, and cause problems when you go to access them. I created to clean up these files.


was written by An Doug Harple .


If, after the translation of a filename is finished, a file already exists with that same name, will not rename the file. This could cause a problem with the max_length filter, if it was imperative that the files be cut down to a certain length.

Long options don't work under Solaris or Darwin.

An error in the config file will cause a segfault as it's going to print the offending word within the config file.