linux根據inode編號刪除檔案

語言: CN / TW / HK

1. 列出目錄下所有檔案的inode

操作指令:ls -li .

[[email protected] ~]$ ls -li .
總用量 392992
1328244 -rw-rw-r-- 1 niewj niewj       654 4月  27 22:42 -d
1328240 -rw-rw-r-- 1 niewj niewj         0 4月  27 22:42 -H
1322919 -rw-rw-r-- 1 niewj niewj  57276047 7月   6 2020 kafka_2.12-2.2.2.tgz
1328256 -rw-rw-r-- 1 niewj niewj 334034602 9月  14 2017 mysql-5.7.20-winx64.zip
1449101 drwxrwxr-x 2 niewj niewj     20480 9月   1 2020 sf_down
1328798 -rw-r--r-- 1 niewj niewj    227852 9月   1 2020 sf_down.zip
1329533 -rw-rw-r-- 1 niewj niewj  10849188 12月 28 2020 sublime.zip

上面主要是-i選項來表示inode,也可以ls -i .

2. 根據inode編號刪除文件

比如上面目錄中的"-d" "-H"等檔案都是在非正常情形下建立的,不方便直接使用名字來刪除,可以通過制定inode來刪掉

2.1 刪除方法1-find前置

如刪掉"-d"檔案
find . -inum 1328244 -exec rm -i {} \;
如果不需要確認,直接刪除(上面的"-H"檔案):
find . -inum 1328240 -exec rm -if {} \;

2.1 刪除方法2-find後置

rm `find . -inum 1328244` 

同樣,既然我們可以根據find命令拿到檔名,那麼我們也可以對他進行其他操作:

# 檢視檔案型別
[[email protected] ~]$ file `find . -inum 1449101`
./sf_down: directory

# 列出檔案詳情
[[email protected] ~]$ ls -l  `find . -inum 1449101`
總用量 24
-rw-rw-r-- 1 niewj niewj 102 9月   1 2020 blankfile
-rw-rw-r-- 1 niewj niewj 352 9月   1 2020 comment.txt
-rw-rw-r-- 1 niewj niewj 278 9月   1 2020 moon.txt
-rw-rw-r-- 1 niewj niewj 213 9月   1 2020 test
-rw-r--r-- 1 niewj niewj 999 9月   1 2020 vim使用整理.md
-rw-rw-r-- 1 niewj niewj  97 9月   1 2020 zoo.cfg

3.小結

// 1.展示inode
ls -li .
// 2.刪除根據inode找到的檔案
rm `find . -inum 12345`
find . -inum 12345 -exec rm -i {} \;

本文來源:linux根據inode編號刪除檔案