I recommend not to use 'tr' as an executable in the distribution for linux and any other POSIX systems.
In POSIX 'tr' is defined as a command to traslate characters. If the user included ThinkingRock in their path, e.g.
Code:
zhangweiwu@esmeralda:~$ echo $PATH
/home/zhangweiwu/bin:/usr/local/nmh/bin:/home/zhangweiwu//bin:/home/zhangweiwu/bin:/usr/local/nmh/bin:/usr/local/opt/tr-2.0.1/bin:/usr/local/bin:/usr/bin:/bin:/opt/bin:/usr/powerpc-unknown-linux-gnu/gcc-bin/4.1.2:/opt/ibm-jdk-bin-1.4.2.11/bin:/opt/ibm-jdk-bin-1.4.2.11/jre/bin:/usr/qt/3/bin:/usr/games/bin
Then any other software calls 'tr' would not work. IN fact in my case it's even worse, multiple 'tr' was called by an fine-written script assuming tr is simple tiny software, making system hangs for unknown reasons, until I spent whole morning trying to find out what whent wrong and trace down to ThinkingRock.
In general, don't name something that has defined meaning in POSIX standard.
Most Linux command are very terse because they inherited posix standard, modern executables are no longer that terse, e.g. '/usr/bin/freemind', '/usr/bin/pentaho-report' are good names for Java application distributed in Linux. I would recommend thinkrock use executable name like 'thinkingrock' or 'thinkingrock'. Besides, even if you wan the terse posix style, usually there are other ways then abbrivating the head letter of each word. e.g. 'visiual editor' is not named 've' but 'vi'. and first two letters in second word, e.g. "vi improved" is 'vim', 'steam editor' is 'sed'. Even trk is much better than tr. In fact, commands that are not often put in pipe or invoked frequently in console does not deserve a tense name, e.g. none of the GUI applications like '/usr/bin/gnumeric', '/usr/bin/abiword', '/usr/bin/inkscape', '/usr/bin/stardic', '/usr/bin/gnome-character-map' have terse names.