If wildcards don't work (Section 14.12) to remove a file with a strange name, try getting the file's i-number (Section 13.2). Then use find's -inum operator (Section 9.9) to remove the file.
Here's a directory with a weird filename. ls (with its default -q option (Section 8.12) on most versions) shows that the name has three unusual characters. Running ls -i shows each file's i-number. The strange file has i-number 6239. Give the i-number to find, and the file is gone:
% ls adir afile b???file bfile cfile dfile % ls -i 6253 adir 6239 b???file 6249 cfile 9291 afile 6248 bfile 9245 dfile % find . -inum 6239 -exec rm {} \; % ls adir afile bfile cfile dfile
Instead of deleting the file, I also could have renamed it to newname with the command:
% find . -inum 6239 -exec mv {} newname \;
If the current directory has large subdirectories, you'll probably want to keep find from recursing down into them by using the -maxdepth 1 operator. (finds that don't support -maxdepth can use -prune ( Section 9.25) for speed.)
-- JP
Copyright © 2003 O'Reilly & Associates. All rights reserved.