Unix Tip: How-to rename an oddball file
Every now and then I come across a file that just doesn't display properly in a file listing. In fact, it can be a little tricky to determine the name of a file that contains odd characters. You might think a file's name is "myfile.txt" only to find out that it's really "myfile.txt " (note the extra blanks). Even so, I was a little surprised to see a file listing that looked like this:
-rw-r--r-- 1 root other 180 Nov 30 10:2q |
In this file listing, part of the timestamp has been obliterated by some unprintable characters in the file's name.
My usual strategy for dealing with oddly named files is to list the file's inode number. After that, I can use the inode number in a file command to remove the file or give it a more well behaved file name. That strategy works well with files that have blanks in their names. In this case, the listing of the file with its inode number looked a little odd too.
> ls -i *
15098q
|
To determine whether 15098 was the complete inode number, I could run a find command in the directory like this:
> find . -inum 15098 -print |
If the find command worked, I could then rename the file with a similar command:
> find . -inum 15098 -exec mv {} newname \;
|
The find command will work but will complain that "./newname and newname are identical".
On the other hand, inode numbers can have six, seven, eight or more digits, so this would only be a guess. I wasn't sure that I wanted to make what might turn out to be hundreds of additional guesses.
Another option is to leave worrying about the actual name of the file to the system. If there aren't too many files in the current directory, you can loop through them and rename the troublemaker when you come to it. This can be useful if you want to look at the file and not simply remove it from the system.
for file in `ls`
do
echo $file
echo -n "rename?> "
read ans
if [ $ans == "y" ]; then
mv $file newname
fi
done
|
If you're really curious about the file's name, unprintable characters and all, you can list your files and pipe the file list to an od command. Since I knew the oddly named file had at least a "q" in it, I narrowed my targets and got this output:
> ls *q* | od -bc
0000000 177 177 161 012
177 177 q \n
|
Use "xc" if you prefer to see the output in hex.
From this output, I could tell that the file's name was backspace backspace q, the 177 being the octal code for the backspace character. How this file came to have such an odd name is still something of a mystery, but at least it now displays normally in my file listings.
ITworld.com
Symantec Backup Exec 12 and Backup Exec System Recovery 8 deliver industry leading Windows data protection and system recovery. Download this whitepaper to find out the top reasons to upgrade and how to get continuous data protection and complete system recovery.
Data and system loss — from a hard drive failure, malicious attack, natural disaster, or simple human error — can happen anytime. Don’t leave your business vulnerable. Make sure you have a secure recovery strategy in place. Symantec's latest backup and system recovery technology can efficiently restore critical applications, individual emails and documents and even restore your entire system in minutes in the event of a loss.
Businesses face a growing challenge to ensure that the IT environment is properly protected. Backup Exec 12 integrates with other applications in the Symantec family of products, to complement your current data protection strategy, keep your data securely backed up and make it recoverable when you need it most.
Crimeware: Understanding New Attacks and Defenses
By Markus Jakobsson, Zulfikar Ramzan
Published Apr 6, 2008 by Addison-Wesley Professional. Part of the Symantec Press series.
Enter now! | Official rules | Sample chapter
Securing VoIP Networks: Threats, Vulnerabilities, and Countermeasures
By Peter Thermos, Ari Takanen
Published Aug 1, 2007 by Addison-Wesley Professional.
Enter now! | Official rules | Sample chapter








This is very helpful
This is very helpful especially the 177 octal value. We were abel to fix the issue in our production system through this.