Linux下使用inode刪除指定文件方法示例
前言
眾所周知在Linux中,有時(shí)候會(huì)遇到文件名是亂碼或者是某些特殊中文的文件,這時(shí)候通過文件名就很難刪除。
同時(shí),對(duì)于linux中的任何一個(gè)文件都必然有其唯一的inode值,這時(shí)候就可以通過inode來刪除異常文件名的文件。
操作的對(duì)象一般為類似下面的文件:
[root@server tmp]# ll 總用量 61404-rw-r--r-- 1 root root 0 6月 16 14:58 ? -rw-r--r-- 1 root root 0 6月 19 12:29 ?? -rw-r--r-- 1 root root 0 6月 21 14:53 ???3kqU-rw-r--r-- 1 root root 0 6月 21 14:53 ?6;?Xf??mA???9???T֙ -rw-r--r-- 1 root root 0 6月 19 12:29 9y??????sy?z?D?l???I?MO???8z????@]9??U@?XlAI]?k
產(chǎn)生這類文件的原因:
1.上傳文件時(shí)網(wǎng)絡(luò)異常導(dǎo)致
2.Windows創(chuàng)建的某些文件名在Linux下無法正常識(shí)別
3.中文特殊字符無法識(shí)別
解決方法如下:
1.查詢這些文件的inode值
ll -i
[root@server tmp]# ll -i 總用量 6140415206100 -rw-r--r-- 1 root root 0 6月 16 14:58 ?15206090 -rw-r--r-- 1 root root 0 6月 19 12:29 ??15206092 -rw-r--r-- 1 root root 0 6月 21 14:53 ???3kqU15206233 -rw-r--r-- 1 root root 0 6月 21 14:53 ?6;?Xf??mA???9???T֙ 15206235 -rw-r--r-- 1 root root 0 6月 21 14:53 A??K?
以上,最左邊的數(shù)字即為對(duì)應(yīng)文件的inode值,不過無法直接使用rm命令刪除文件,需要其他命令配合使用
2.刪除異常文件
正常情況下這些文件也是可遇不可求的,不過涉及到rm的命令要小心謹(jǐn)慎,事前做一下測(cè)試,熟練下操作怎么也是不為過的,沒有這些亂碼的文件,可以使用正常的文件做測(cè)試,
有以下這幾種方法:
先創(chuàng)建需要的文件
[root@zstest1 tmp]# cd /tmp [root@zstest1 tmp]# touch aaa bbb ccc ddd eee [root@zstest1 tmp]# ll -i 總用量 01442581 -rw-r--r-- 1 root root 0 9月 22 15:00 aaa1442582 -rw-r--r-- 1 root root 0 9月 22 15:00 bbb1442583 -rw-r--r-- 1 root root 0 9月 22 15:00 ccc1442584 -rw-r--r-- 1 root root 0 9月 22 15:00 ddd1442585 -rw-r--r-- 1 root root 0 9月 22 15:12 eee
(1)使用find自帶的delete參數(shù)進(jìn)行刪除aaa文件
[root@zstest1 tmp]# find ./* -inum 1442581 -delete [root@zstest1 tmp]# ll -i 總用量 0 1442582 -rw-r--r-- 1 root root 0 9月 22 15:00 bbb 1442583 -rw-r--r-- 1 root root 0 9月 22 15:00 ccc 1442584 -rw-r--r-- 1 root root 0 9月 22 15:00 ddd 1442585 -rw-r--r-- 1 root root 0 9月 22 15:12 eee
(2)使用find自帶的-exec參數(shù)結(jié)合rm命令刪除bbb文件(進(jìn)行刪除確認(rèn))
[root@zstest1 tmp]# find ./* -inum 1442582 -exec rm -i {} \;
rm:是否刪除普通空文件 "./bbb"?y
[root@zstest1 tmp]# ll -i
總用量 0
1442583 -rw-r--r-- 1 root root 0 9月 22 15:00 ccc
1442584 -rw-r--r-- 1 root root 0 9月 22 15:00 ddd
1442585 -rw-r--r-- 1 root root 0 9月 22 15:12 eee
(3)使用find自帶的-exec參數(shù)結(jié)合rm命令刪除ccc文件(不進(jìn)行刪除確認(rèn))
[root@zstest1 tmp]# find ./* -inum 1442583 -exec rm -f {} \;
[root@zstest1 tmp]# ll -i
總用量 0
1442584 -rw-r--r-- 1 root root 0 9月 22 15:00 ddd
1442585 -rw-r--r-- 1 root root 0 9月 22 15:12 eee
(4)使用find和xargs結(jié)合刪除ddd文件(無法使用-i參數(shù)進(jìn)行刪除確認(rèn))
[root@zstest1 tmp]# find ./* -inum 1442584 |xargs rm -f [root@zstest1 tmp]# ll -i 總用量 0 1442585 -rw-r--r-- 1 root root 0 9月 22 15:12 eee
(5)使用rm命令刪除指定文件(由find命令找到的文件名)
[root@zstest1 tmp]# rm `find ./* -inum 1442574` rm:是否刪除普通空文件 "./eee"?y [root@zstest1 tmp]# ll 總用量 0 # 使用find命令的-inum選項(xiàng)確認(rèn)文件名 [root@zstest1 tmp]# touch fff [root@zstest1 tmp]# ll -i 總用量 01442574 -rw-r--r-- 1 root root 0 9月 22 15:38 fff [root@zstest1 tmp]# find ./* -inum 1442574 ./fff
總結(jié)一下:
以上幾種不同的刪除方式,總體來說都是通過指定文件的inode值,使用find命令的-inum選項(xiàng)確認(rèn)其文件名,然后傳遞給rm命令進(jìn)行刪除
完畢,呵呵呵
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對(duì)腳本之家的支持。
相關(guān)文章
Apache rewrite的重寫相關(guān)的參數(shù)說明
Apache的rewrite的重寫非常常用,現(xiàn)總結(jié)了一下.2008-08-08
詳解CentOS設(shè)置程序開機(jī)自啟動(dòng)的方法
本篇文章主要介紹CentOS設(shè)置程序開機(jī)自啟動(dòng)的方法 ,在CentOS系統(tǒng)下,主要有兩種方法設(shè)置自己安裝的程序開機(jī)啟動(dòng)。有興趣的可以了解一下,2016-12-12
Keepass+PuTTYPortable+Winscp一鍵登錄實(shí)例詳解
這篇文章主要介紹了Keepass+PuTTYPortable+Winscp一鍵登錄實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下2017-01-01
CentOS8.0 網(wǎng)絡(luò)配置的實(shí)現(xiàn)
這篇文章主要介紹了CentOS8.0 網(wǎng)絡(luò)配置的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10
linux cat more less顯示文件的區(qū)別
liunx下幾個(gè)常見的用于顯示文件命令的區(qū)別2008-06-06

