WD1X.COM - 问答一下,轻松解决,电脑应用解决专家
主板显卡CPU内存显示器
硬盘维修显卡维修显示器维修
注册表系统命令DOS命令Win8
存储光存储鼠标键盘
内存维修打印机维修
WinXPWin7Win11Linux
硬件综合机箱电源散热器手机数码
主板维修CPU维修键盘鼠标维修
Word教程Excel教程PowerPointWPS
网络工具系统工具图像工具
数据库javascript服务器
PHP教程CSS教程XML教程

Linux 删除乱码文件与文件夹(支持批量)方法

更新时间:2013-08-10 14:12 作者:佚名点击:

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后面定义的一致,其它没啥好说的,适用其它操作。

顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
你可能感兴趣的内容