Linux下删除不掉的文件


  “为什么有些Linux文件以讨厌的减号("-")开头做文件名,无论如何都删除不掉,这到底为什么?",您可能听过您临桌的新手这样的叫喊过,希望同样的事情不会发生在您的身上,这个非常容易解决,您只要用带路径的方法就可以把他们删除了,假定一个文件名为"-abc",您可以用:

  rm ./-abc 或者

  rm /home/yaoyao/-abc

  命令将其轻松删除,另外您也可以用相同的方式用vi或者其他工具对他们进行修改。

  另一些文件看上去可能一切正常,但当您尝试删除的时候,居然也会报错,就象下边一样:

  [root@linux236 root]# ls -l 1.txt

  -rw-r--r-- 1 root root 0 Aug 5 23:00 1.txt

  [root@linux236 root]# rm -rf 1.txt

  rm: cannot unlink `1.txt': Operation not permitted

您是全能root用户,居然系统告诉您操作不允许,是Linux疯了么?当然不是,如果您会用lsattr命令,问题就有了答案。

  [root@linux236 root]# lsattr

  ---i---------- ./1.txt

  -------------- ./weiqi.ldif

  -------------- ./qi.schema

  秘密终于暴露了,在lsattr命令下,这个1.txt文件带有一个"i"的属性,所以才不可以删除。您现在可以用下边的一系列命令:

  [root@linux236 root]# lsattr 1.txt

  ---i---------- 1.txt

  [root@linux236 root]# chattr -i 1.txt

  [root@linux236 root]# rm -rf 1.txt

  [root@linux236 root]#

  成功了,这个属性专门用来保护重要的文件不被删除,通常的情况下,懂得用这几个命令的通常系统管理员有能力判断这个文件是否可以被删除。 如果您想给一个文件多加点保护,可以使用下边的命令:

  chattr +i filename

  命令,这样一来,想要删除这个文件就要多一个步骤。同时,这样的文件也是不可以编辑和修改的。只有root用户才能使用chattr命令。此命令可以在Linux ext2或ext3系统上使用。

  类似于Dos和Windows文件系统,不能随意删除的文件多半都有其道理,即使您知道如何删除,都应该三思而后行。

相关内容