Linux 删除乱码文件与文件夹

Linux 删除乱码文件与文件夹,第1张

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

22413314do

find

-inum

$n

-deletedone

文件夹

for

n

in

22413315

22413314do

find

-inum

$n

-exec

rm

-rf

{}

done

$n是变量名,与for后面定义的一致,其它没啥好说的,适用其它 *** 作。

注:更多精彩教程请关注三联电脑教程栏目,三联电脑群:189034526欢迎你的加入

当文件名为乱码的时候,无法通过键盘输入文件名,所以在终端下就不能直接利用rm,

mv等命令管理文件了。

但是我们知道每个文件都有一个

i

节点号,我们可以考虑通过

i

节点号来管理文件。

首先,我们要取得文件的

i

节点号。这个可以通过ls命令的-i

选项获得得,也可以通过ll

-i

来获得。

第二步,使用find命令将文件名传递给rm命令。

e.g:删除节点为12345的乱码文件夹可以使用如下命令:

find

./

-inum

12345

-print

-exec

rm

{}

-rf

/

注意/前面的空格不能少,少了就会报错。

有桌面吗?有的话在桌面环境下删除。

没有的话,在shell下通过管道直接删除:

假设在 /tmp 下存在乱码目录 x

执行 ls /tmp|nl -ba 查看输出中乱码目录x在第几行,假设在第2行

接着 执行 ls/tmp|sed -n '2'p|xargs rm -rf

搞定。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/9009799.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-23
下一篇 2023-04-23

发表评论

登录后才能评论

评论列表(0条)

保存