54 comment

    1. The special files created as above can be removed by ‘rm’ cmd in my ubuntu 10.04. Probably the rm command is updated for simplicity.

  1. Very easy :) Login to your remote ftp server.

    ftp http://ftp.some.com

    Goto directory where special character files placed. And type command:

    mdel *

    mdel will ask you if you really wish to delete each file in the directory. Make sure you answer y (for yes) for each file containing the special character that you wish to delete. Hope this helps.

  2. adding to my previous post there is an instance when your rm “filename” wont work.
    say u created a file –help
    it wont get deleted by using rm “–help”

    so we have to rm ./”–help”

  3. Anonymous: your tip won’t work if the filename has very weird characters (non-printable characters, that is)

  4. “Anonymous: your tip won’t work if the filename has very weird characters (non-printable characters, that is)”

    Um, yes it will, did you actually try it? Eg, go in to vi and save a file with :wq [ctrl-v backspace]q[ctrl-v backspace]

    which would look like “^?q^?” and continue. Now you have:

    -rw-r–r– 1 root wheel 0B Sep 12 00:55 ?q?

    Where’s the ^!!!!

    So now with ls -li:

    516 -rw-r–r– 1 root wheel 0 Sep 12 00:55 ?q?


    [[email protected] ~]# find . -inum 516 -exec rm -i {} ;
    remove ./q? y
    [[email protected] ~]#

    file is gone.

  5. To make sure find only finds the files in the correct directory use the -mount switch to prevent it jumping across mount points.

  6. This is a simple process:
    [email protected] # mkdir ^Hms^?
    [email protected] # ls -l
    total 14
    drwxr-xr-x 2 root other 512 Dec 22 12:59ms

    list the directory using octal representation. So you know the control characters in the name.

    [email protected] # ls -lb
    total 14
    drwxr-xr-x 2 root other 512 Dec 22 12:59 10ms\177

    Now simply rm “Control V””Backspace”ms”Control V””Delete”

    Where Control V is a key combination and Backspace is a key. As is Delete. In the above example 10 is BS (BackSpace) and \177 is Delete.

    Very simple…

  7. I have a directory structure:

    # ls -ila
    total 20
    2179132 drwxrwsr-x 2 www www 16384 2007-09-14 00:16 .
    2081399 drwxrwsr-x 101 www www 4096 2007-06-27 14:32 ..
    ? ?——— ? ? ? ? ? 1a6b29c00be.jar

    the last entry couldn’t remove (fsck.ext3 /dev/sd12, rm -f, rm -rf to parent dir, stb…), because no inode. I no idea how to remove it, only found format the partition :(

  8. William, I’ve your problem too:

    ls -lia
    total 40
    14663798 drwxr-xr-x 2 1001 1001 36864 2007-10-26 13:27 .
    14663789 drwxr-xr-x 3 1001 1001 4096 2007-10-26 13:27 ..
    ? ?——— ? ? ? ? ? PROVA D’ABILIT? FF8.htm
    ? ?——— ? ? ? ? ? Prova d’abilit? ff9.htm

    I can’t format the partition! There is more than 100Gb of backup file in it!!!!

    someone have some further suggestions?

  9. other way to remove files: try e2fsprogs
    it is working on hardly not removing files with wrong attributes

    open -w /dev/…
    rm File

    be carefull!

  10. Desi Style. Move all others which you can delete to a different folder.
    Then rm -rf * & restore all those back

  11. So now the other way around, I want to put back in the directory structure file that is still used by some process (inode is hnown from the /proc//fd).

  12. Hi All,

    permission all files are: -rwxrw-rw-

    I have 23982 total of files, I am triying to remove all of it but I alwasy got this error: “Permission denied”

    what I have tried:
    tried to change the permission on single file
    chmod 777 filename
    chmod: WARNING: can’t access 777
    chmod: ERROR: invalid mode
    (not working)

    chown to my id (not working)

    rm using inode (same error: Permission denied)

    rm using wildcard (not working)

    mv some files or single file to other directory (not working: Persmissin denied)

    please help me to remove this junk files…


  13. I have a file called winhelp.exe16. I can not delete it, neither by your method!
    I am from Brazil, “Operação não permitida” means “Operation not allowed”.

    [[email protected] dlls]$ ls -l winhelp*
    —–w—- 1 root 32784 98320 Jan 4 1970 winhelp.exe16
    [[email protected] dlls]$ stat winhelp*
    File: `winhelp.exe16′
    Size: 98320 Blocks: 16 IO Block: 4096 arquivo comum
    Device: 308h/776d Inode: 289 Links: 1
    Access: (0020/—–w—-) Uid: ( 0/ root) Gid: (32784/ UNKNOWN)
    Access: 1970-01-02 18:30:56.000000000 -0300
    Modify: 1970-01-04 06:55:28.000000000 -0300
    Change: 1970-01-03 12:43:12.000000000 -0300
    [[email protected] dlls]$ find . -inum 289 -exec rm -i {} \;
    rm: remove write-protected arquivo comum `./winhelp.exe16′? y
    rm: imposível remover `./winhelp.exe16′: Operação não permitida
    [[email protected] dlls]$ su
    [[email protected] dlls]# find . -inum 289 -exec rm -i {} \;
    rm: remove write-protected arquivo comum `./winhelp.exe16′? y
    rm: imposível remover `./winhelp.exe16′: Operação não permitida
    [[email protected] dlls]#

  14. Hi, people,

    I got a way to delete this file. I ‘ve used debugfs. It has a rm command like the shell. Easy boys, read the man page.

  15. Hi friend,

    Can any one teach me or tell me how to do backup using tape drive. currently i using “tar cMvf /dev/st0 /home” but not very sure on this. how to do complete backup for few directory using 1 command.



  16. Guys, for most cases you can just cd into another dir and do rm ../”-rf-file” and it works a charm. Only prob I had which brought me here was a file name “^M”
    don’t ask how I got it but i could not delete it to save my life…

  17. I have a server with a web app,
    my inodes are all used up,
    i see this tutorial to delete inodes,
    but, i do not know which inodes/files to delete
    i dont know where my web app is creating this innodes… how can i know this?’

  18. got a 2gb+ file which refuses to delete because of file system does not like large files. sco openserver unix.

    my question is: can i delete it using the inode thing. i don’t want to risk it by trying it before i know the concequences!.

    Thanks for yor help

  19. Had all kinds of fun trying to remove a file called ????
    Confirmed afterwards that it wasn’t just any old
    # touch “????”
    … kind of file. Simple “\” did the trick on that one. But the original file (don’t know how it was created) wouldn’t go down with rm with any manner of escaping, find (inode and -exec rm, method), or debugfs’s rm command. Eventually booted up Windows–pains me to say it, but…. WinSCP saw it as four ASCII squares and was able to delete it. (WinSCP saw the `touch “????”` file properly… as ????)

  20. This will delete a file regardless of how screwed up the name is. Copy ‘del’ to somewhere in your path, run del . Paste the following into a file (del.c) and run cc -o del del.c


    main(int argc, char **argv)
    return remove(argv[1]);

  21. one file got renamed to noname file (blank). Is it possible to open or rename a file with tab in its name.

    apprieciate any help regarding this.

  22. I got a better idea to delete/rename files/folder with special character and also without any risk..
    Just WINSCP from Windows system to UNIX/Linux system.. then you can search and rename/delete the file/folder

  23. On a related note,
    using find {args} -exec rm -rf {} \;
    is deprecated and should be replaced with find {args} -delete

  24. In my server i can see that the Inode is full. It shows 100%. It cause error when i access my domain in the browser. I have cleared all the files in “/tmp”. Now i have few free space in Inode.

    [~]# df -i
    Filesystem Inodes IUsed IFree IUse% Mounted on
    /dev/sd1 1200000 1188860 12640 100% /
    none 153600 96 153504 1% /dev

    How to find the files which cause the Inode space to be full. Is there any command to find the files that has created in the server due to Inode session. Please help.

  25. I have an inode with 2 duplicate blocks. I have the name of the inode and the blocks (all numbers) so how can I delete only one block and leave the other?

  26. I have two directories with the same name.Strange is when i do ls -li , it is not even showing the inodes also.. Now how can i delete one directory?

  27. Delete or remove files or directory with inode number
    Let us try to delete file using inode number.

    #find . -inum -exec rm -ir {} \;

    When prompted for confirmation, press Y to confirm removal of the file or directory.

  28. No need for that if you can do a ls on the file. Even if the file starts with a dash, thus beingt interpreted as an option
    rm — ‘–my-file-with-dash’
    works fine.

    Sometimes there are files called ‘^H^H^H’ or so. You won’t see the name on the console (under some circumstances). One could call
    rm -f — ???
    if there is no file like ‘xyz’ in the console. Here this find command works fine.

    So thanks for that idea!

    1. The command line “find . -inum inodenumber | xargs rm -f”
      Is not passing the proper file name to the rm command. To see this replace “rm -f” with “echo $*” (do not include the quotes). I’m not sure why you’re piping the output to the “xarg” in the first place.

      I suggest you use the “-exec” option of the “find” command:
      find . -inum -exec rm {} \;
      Also, as someone above mentioned, simply use the backslash “\” in front of any special characters such as forward slash “/” periods, “.” hash marks “#”, dollar sign “$” etc. The backslash, also called the escape character as it “escapes” the special meaning of the single, following character.

      If there are embedded spaces in the file name then also, surround everything in double quotes. This my experience using US keyboards on US systems, your experience may vary.

Leave a Comment