From: www.itworld.com

Unix Tip: More on filenames

by Sandra Henry-Stocker

February 20, 2008 —

 

Two weeks ago, we looked at some tricks for displaying file names which include unprintable characters. Another -- and simpler -- way to do this is to use the -b option available with the ls command on some versions of Unix (e.g., Solaris).

The -b option forces a display of non-printable characters. While this category of characters doesn't include spaces, so it won't help to expose spaces that appear at the ends of file names, it makes characters such
as delete and backspace very easy to identify.

boson> ls -b
h\177llo

In this display, the delete character in the file name that displays as "llo" is shown in octal, making the presence of the character obvious.

Unprintable characters are not the only characters that cause problems when working with files on Unix systems. Other special characters can be just as problematical. Most Unix commands that you type will, for example,
immediately take a hyphen at the beginning of a filename as an indication that you are adding command and will not do what you expect.

Type "rm -oddfile" for example, and you'll see something like this:

boson> rm -oddfile
rm: illegal option -- o
rm: illegal option -- d
rm: illegal option -- d
rm: illegal option -- l
rm: illegal option -- e
usage: rm [-fiRr] file ...
boson> ls
-oddfile

This kind of problem is not hard to get around, however. If you preface your filename with a path, for example, the hyphen will no longer be the first character the command encounters and it will accept the filename.

boson> more ./-badname
Be informed.  The most effective lobbyist is one who is well informed about
both the issues to be discussed and the member of the legislature with whom
he or she is meeting.  It is very important that you know quite a bit about
the target's voting record and background.  It also helps to be familiar
with other constituent concerns within the district.

You can also remove or rename the file using the same trick:

boson> rm ./-badname
boson> ls
boson>

or:


boson> mv ./-badname goodname

You might also run into problems when filenames contain exclamation points as shown in this example:

boson> ls file*
file!name
boson> cat file!name
bash: !name: event not found

You can get around many troublesome special characters by using the escape character:

boson> more file\!name
Lobbying Tips

Lobbying is simply an attempt to persuade someone to accept your point of view
by sharing of information and describing effects that particular policies
have on the target's constituency.  In this document, we share a number of
tried and tested tips to help you present your case effectively.

If you are working with filenames including embedded blanks, you can easily work around any problems by enclosing the filenames in quote marks.

boson> more "odd file"
Don't argue.  If you find yourself getting into a debate with legislator you are lobbying, back off.  Your goal is to present your case, not necessarily to win it.

Another option is to use the escape character:


boson> more odd\ file
Don't argue.  If you find yourself getting into a debate with legislator
you are lobbying, back off.  Your goal is to present your case, not necessarily
to win it.

How-to rename an oddball file

Stripping file extensions with the basename command

Reassembling very large "split" files