Help! There's a slash '/' in my filename.
Steve Hayman
sahayman at porbeagle.cs.indiana.edu
Fri Feb 8 08:22:38 AEST 1991
I've added this section to the FAQ answer about removing files with
strange characters in their names. Please email me any corrections or
additions. Thanks.
If the filename has a slash in it, you have a bigger problem.
Recall that Unix directories are simply pairs of
filenames and inode numbers. A directory essentially
contains information like this:
filename inode
file1 12345
file2.c 12349
file3 12347
Theoretically, '/' and '\0' are the only two characters that
cannot appear in a filename - '/' because it's used to separate
directories and files, and '\0' because it terminates a filename.
Unfortunately some implementations of NFS will blithely create
filenames with embedded slashes in response to requests from remote
machines. For instance, this could happen when someone on a Mac or
other non-Unix machine decides to create a remote NFS file on
your Unix machine with the date in the filename. Your Unix
directory then has this in it:
filename inode
91/02/07 12357
No amount of messing around with 'find' or 'rm' as described above
will delete this file, since those utilities and all other Unix
programs, are forced to interpret the '/' in the normal way -
those programs will think that "91" is a directory.
What can you do in this case?
The first thing to try is to return to the Mac that created this
crummy entry, and see if you can convince it and your local NFS
daemon to rename the file to something without slashes.
If that doesn't work or isn't possible, drastic action by root is
required. Use "ls -i" to find the inode number of this bogus
file, then unmount the file system and use "clri" to clear the
inode, and "fsck" the file system with your fingers crossed.
This destroys the information in the file. If you want to
keep it, you'll have to patch the directory the hard way
by crawling around in the raw file system.
Use "fsdb", if you have it, otherwise start learning "adb".
..Steve
More information about the Comp.unix.internals
mailing list