巧用find命令删除Linux下乱码文件及文件夹

  • A+
所属分类:杂谈

Linux下遇到乱码文件或文件夹,一般还是可以用通配符来试试的,或者配合Tab补全功能。但是适用率很低,也可以有其它五花八门的方法,这里介绍巧用find命令来解决这难题!

删除文件

Linux中,每个文件都有一个节点编号,我们可以利用此来搞定乱码,首先查看乱码文件的节点号

  1. ls -i
  2. 660136 whmcs_v631_full??%98?%96??%8E%9F?%89%88.zip

巧用find命令删除Linux下乱码文件及文件夹 前面的就是节点号了,接下来使用find命令查询并且删除

  1. find -inum 660136 -delete

-inum指根据节点号查询;-delete顾名思义就是删除操作了。这样就成功删除乱码文件了,值得注意的是,此方法只适用于删除文件或空的文件夹

删除文件夹

对于文件夹,尤其是非空的文件夹,上面的方法就不适用了,要用到另外的参数来实现,首先相同的是查看乱码文件夹的节点号

  1. ls -i
  2. 18612483 瑗块.?.. - Thank you, Love(128kbps) 2016.05.27

接下来使用find命令删除

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

虽然提示我们找不到此文件或文件夹,但其实已经表明删除了。-exec作用是查找后执行命令,其中{}代表前面查询到的结果,空格+;是结束符,其它就不说了。-exec后可以跟任何常用命令,因此这方法不但适用于文件夹,文件也可以。

小技巧

怎么批量删除呢?其实很简单,用for就好了

文件

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

文件夹

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

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

后记

不仅仅是删除,其它基本操作如改名、移动、复制等都适用的。

  • 我的微信
  • 使用微信扫一扫
  • weinxin
  • IT运维交流群
  • 使用QQ扫一扫
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: