Linux: Using inode number to delete files with special characters


Today I found there is one special file named -v in the folder.
-rw-r--r-- 1 root root 790 Apr 23 18:36 -v

In this case, we can find the file's inode number and use the inode number to delete it.

First let's find the file's inode number using ls -li. 
The -i prints the inode number of each file.
ls -li
5242899 -rw-r--r-- 1 root root 790 Apr 23 18:36 -v

Then use one of below commands to delete it:
find . -inum 5242899 -delete
find . -inum 5242899 -exec rm -i {} \;

Also if we are creating multiple hard links to one file, and we want to remove that file completely- even there are still multiple hard links. We can use the same trickL:
find . -inum [inum] -delete

Labels

adsense (5) Algorithm (69) Algorithm Series (35) Android (7) ANT (6) bat (8) Big Data (7) Blogger (14) Bugs (6) Cache (5) Chrome (19) Code Example (29) Code Quality (7) Coding Skills (5) Database (7) Debug (16) Design (5) Dev Tips (63) Eclipse (32) Git (5) Google (33) Guava (7) How to (9) Http Client (8) IDE (7) Interview (88) J2EE (13) J2SE (49) Java (186) JavaScript (27) JSON (7) Learning code (9) Lesson Learned (6) Linux (26) Lucene-Solr (112) Mac (10) Maven (8) Network (9) Nutch2 (18) Performance (9) PowerShell (11) Problem Solving (11) Programmer Skills (6) regex (5) Scala (6) Security (9) Soft Skills (38) Spring (22) System Design (11) Testing (7) Text Mining (14) Tips (17) Tools (24) Troubleshooting (29) UIMA (9) Web Development (19) Windows (21) xml (5)