Linux下刪除亂碼或特殊字符文件的方法講解

由於編碼原因,在linux服務器上上傳、創建中文文件或目錄時,會產生亂碼,如果想刪除它,用rm命令是刪除不了的,這種情況下,用find命令可以刪除亂碼的文件或目錄。

在linux文件系統中,每個文件都有一個i節點號,可以通過i節點號來管理文件。首先進入亂碼文件或目錄所在的目錄

使用ls -i命令找到文件或目錄的inode,


Linux下刪除亂碼或特殊字符文件的方法講解


文件或目錄前面的數字字符串就是inode,接下來使用find命令查詢並且刪除此文件或目錄。


Linux下刪除亂碼或特殊字符文件的方法講解


注意:此方法只適用於刪除文件或空的文件夾。

Linux下刪除亂碼或特殊字符文件的方法講解

非空文件夾怎麼刪除呢?

首先也是先查inode,然後用如下命令即可:

find -inum 2236429 -exec rm -rf {} \;

會提示找不到此文件或文件夾,但其實已經刪除了。

如何在Linux下刪除文件名是亂碼或者帶有特殊字符的文件。

今天遇到一個問題,一個文件名是“-MXV9.log”,直接用rm刪除的時候就報錯

[localhost]rm -MXV9.log

rm: illegal option -- M

rm: illegal option -- X

rm: illegal option -- V

rm: illegal option -- 9

rm: illegal option -- .

rm: illegal option -- l

rm: illegal option -- o

rm: illegal option -- g

Usage: rm [-Rfir] file ...

開始想著帶引號刪,發現帶引號刪除也一樣報illegal option的錯

找了一些資料,發現這種文件可以這樣刪除

先ls -i 查到文件的inode,然後用find命令刪除

[localhost]ls -ilrt

100985 -rw-r--r-- 1 tbcs users 0 Apr 18 11:32 -MXV9.log

最前面一列的100985就是文件的inode,在主機上執行如下命令即可刪除文件

[localhost]find ./ -inum 100985 -exec rm {} \;

這個方法適用於文件名為亂碼或者帶有特殊字符的文件刪除

比如說文件名是“*.txt” 如果直接執行rm *.txt,會把文件夾中所有以.txt結尾的文件全部刪除了。


後面小編會分享更多運維乾貨,感興趣的朋友走一波關注哩~

Linux下刪除亂碼或特殊字符文件的方法講解


分享到:


相關文章: