Delete Files With Inode Number in Unix or how to delete files with special characters

You can use rm command to delete file.Sometimes, files are created with special characters like control characters and you will not be able to delete them, as you won’t be able to input them via a keyboard.

These files are not that easy to delete. Inode numbers comes in handy at this time.

You can find the inode value by using the following command.

geobaby@geo-desktop:~/Desktop$ ls -li
3539141 -rwxrwxrwx 2 geobaby geobaby    4096 2013-05-31 16:36 %$#%  ^%^??#$@#
3153532 -rwxrwxrwx 1 geobaby geobaby 3274861 2013-04-30 17:06 DSCF2091.JPG
3146249 -rwxr-xr-x 1 geobaby geobaby     476 2013-02-22 16:58 gnome-terminal.desktop

Next, use find command to remove the file.

find . -inum [inode-number] -exec rm -fi {} \;

And here it will be:

find . -inum 3539141 -exec rm -fi {} \;

The file will be removed.

How To Find Large Files and Directories in Unix

Sometimes we need to find larger files in a file system when theres is a disk space issue.

This example finds all the files under /etc directory which are larger than 1000k:

geobaby@ubuntu:~$ find /etc -size +1000k
/etc/brltty/zh-tw.ctb

If you look at the file, the size if above 1000k:

geobaby@ubuntu:~$ ls -l /etc/brltty/zh-tw.ctb
-rw-r–r– 1 root root 1368836 2010-08-12 05:20 /etc/brltty/zh-tw.ctb

The following example will be helpful in cPanel or web servers.

find / -size +1000M : will list all the files above 1GB size.

find / -size +1000M > list

for i in `cat list`; do du -sch $i;done : will list all the files and their resoective size.