Windows XP Windows 7 Windows 2003 Windows Vista Windows教程綜合 Linux 系統教程
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟件教程
 Windows教程網 >> Linux系統教程 >> Linux教程 >> Linux 刪除亂碼文件與文件夾(支持批量)方法

Linux 刪除亂碼文件與文件夾(支持批量)方法

日期:2017/2/7 16:53:12      編輯:Linux教程

1. 查詢inode :

 代碼如下  

[oracle@test]$ ll -i
total 14694452
17956913 -rw-r–r– 1 oracle oinstall          0 Jan 18 20:24 1?.txt

2. 修改測試文件名:

 代碼如下   find . -inum 17956913 -exec mv {} file.txt ;

3. 刪除亂碼文件

 代碼如下   [oracle@test]$ ll -i
total 14694452
….
-rw-r–r– 1 oracle oinstall          0 Jan 18 20:24 file.txt

記錄:刪除亂碼的文件可使用 find . -inum 17956913 -exec rm {} ;


文件夾

對於文件夾,尤其是非空的文件夾,上面的方法就不適用了,要用到另外的參數來實現,首先相同的是查看亂碼文件夾的節點號

 代碼如下  

ls -i
18612483 瑗塊.?.. - Thank you, Love(128kbps) 2011.06.22

接下來使用find命令刪除

 代碼如下  

find -inum 18612483 -exec rm -rf {} ;
find: ./瑗塊.?.. - Thank you, Love(128kbps) 2011.06.22: No such file or directory

雖然提示我們找不到此文件或文件夾,但其實已經表明刪除了。-exec作用是查找後執行命令,其中{}代表前面查詢到的結果,空格+;是結束符,其它就不說了。-exec後可以跟任何常用命令,因此這方法不但適用於文件夾,文件也可以。

小技巧

怎麼批量刪除呢?其實很簡單,用for就好了

 代碼如下  

文件

for n in 22413315 22413314;do find -inum $n -delete;done

文件夾

for n in 22413315 22413314;do find -inum $n -exec rm -rf {} ;;done

$n是變量名,與for後面定義的一致,其它沒啥好說的,適用其它操作。

Copyright © Windows教程網 All Rights Reserved