Today one user complained, that he is not able to delete files.
Most probably this was due to non printable charter in the file name.
# cd /oracle
# ls -ltr
total 7151632
drwxr-xr-x 2 oracle oinstall 256 May 27 2008 lost+found
drwxr-xr-x 3 oracle oinstall 256 May 28 2008 app
drwxr-xr-x 2 oracle oinstall 4096 May 28 2008 TT_DB
-rwxrwxrwx 1 oracle oinstall 3970 May 28 2008 .dtprofile
-rwxrwxrwx 1 oracle oinstall 98 May 28 2008 .Xauthority
-rwxrwxrwx 1 oracle oinstall 219 May 28 2008 .TTauthority
drwxrwxrwx 10 oracle oinstall 4096 May 28 2008 .dt
-rwxrwxrwx 1 oracle oinstall 3 May 30 2008 .wmrc
drwxr-xr-x 3 oracle oinstall 256 May 31 2008 .java
-rw------- 1 oracle oinstall 3 Nov 28 2008 dead.letter
-rw-r--r-- 1 oracle oinstall 0 Dec 05 2008 VALID
drwx--x--x 2 oracle oinstall 256 Dec 05 2008 Mail
-rw-r--r-- 1 oracle oinstall 11 Dec 05 2008 .mh_profile
-rw-r--r-- 1 oracle oinstall 0 Feb 28 2009 smit.transaction
-rw-r--r-- 1 oracle oinstall 0 Feb 28 2009 smit.script
drwxr-xr-x 3 oracle oinstall 256 May 26 2009 oradiag_oracle
-rw-r--r-- 1 oracle oinstall 2409 Feb 02 2011 back.sh
drwxr----- 3 ofm11g dba 256 Jun 14 2011 application
drwx------ 2 oracle oinstall 256 Jun 17 2011 .ssh
-rw-r--r-- 1 oracle oinstall 54 Aug 02 2011 afiedt.buf
drwxrwxrwx 3 cash staff 256 Nov 01 2011 dbdirectory
-rwxrwxr-x 1 oracle oinstall 630 Nov 30 2011 .profile
drwxrwxrwx 2 bbk staff 256 Jan 09 2012 CMS_FILE_LOCATION
-rw-r----- 1 oracle oinstall 4817 Jun 14 13:04 sqlnet.log
-rw------- 1 oracle oinstall 127931 Jul 31 19:19 nohup.out
-rw-r--r-- 1 oracle oinstall 127543 Jul 31 19:19 cmsdb12_27jul12_exp.lo g
-rw-r--r-- 1 oracle oinstall 3661254656 Jul 31 19:19 cmsdb12_27jul12.dmp
-rw-r--r-- 1 oracle oinstall 231 Aug 01 10:19 cmsdb6.txt
-rw-r--r-- 1 oracle oinstall 231 Aug 01 13:45 cmsdb6-1.txt
-rw-r--r-- 1 oracle oinstall 11199 Aug 01 16:45 kill_inactive.sql
-rwxrwxrwx 1 oracle oinstall 356 Aug 01 17:28 .vi_history
-rwxrwxrwx 1 oracle oinstall 1462 Aug 01 17:36 .bash_history
-rw------- 1 oracle oinstall 13300 Aug 03 10:51 .sh_history
# file cmsdb6-1.txt
file: cannot open cmsdb6-1.txt
# ls -li cmsdb6-1.txt
ls: 0653-341 The file cmsdb6-1.txt does not exist.
# rm cmsdb6-1.txt
rm: cmsdb6-1.txt: A file or directory in the path name does not exist.
# ls -lbi *cmsdb6*
39 -rw-r--r-- 1 oracle oinstall 231 Aug 01 10:19 cmsdb6.txt
42 -rw-r--r-- 1 oracle oinstall 231 Aug 01 13:45 cmsdb6.txt?33[D?33[D?33[D?33[D-1.txt
# rm -i cmsdb6.txt*
rm: Remove cmsdb6.txt? n
rm: Remove cmsdb6-1.txt? y
# ls -lbi *cmsdb6*
39 -rw-r--r-- 1 oracle oinstall 231 Aug 01 10:19 cmsdb6.txt
# rxit
ksh: rxit: not found.
You have mail in /usr/spool/mail/root
#
So if you face same kind of issue, Please try “ls -lbi” to display nonprintable characters and the inode (first column of the output) of the file(s).
Then you have different options to delete the file.
E.g. “rm -i p*” and reply only “y” for the file you want to delete.
Or use something like
“find . -inum <inum-of-your-file-in-question> -exec rm {} ;”
to identify the file by the inode number you got with the ls -b.