熬夜删掉Linux删除不掉的文件
今天在做关于shell的作业时不知咋的生成了一个一 –z开头的文件,怎么删都删不掉, 如图:
 
 
为什么有些文件以讨厌的减号("-")开头做文件名,无论如何都删除不掉,这到底为什么?"原因是在当期目录小”-字符” rm命令把其当成option,所以删除时会报错,说参数不是有效的.
您可能听过您临桌的同学这样的叫喊过,希望同样的事情不会发生在您的身上,这个非常容易解决,您只要用带路径的方法就可以把他们删除了,假定一个文件名为"-mn
您可以用:
  rm ./-mn或者
  rm /home/redhat/-mn
  命令将其轻松删除,另外您也可以用相同的方式用vi或者其他工具对他们进行修改。
  经过收集整理得知,另一些文件看上去可能一切正常,但当您尝试删除的时候,居然也会报错,就象下边一样:
  [root@zhangjixin zhang]# ls -l 1.txt
  -rw-r--r-- 1 root root 0 Aug 5 23:00 1.txt
  [root@zhangjixin zhang]# rm -rf 1.txt
  rm: cannot unlink `1.txt': Operation not permitted
您是全能root用户,居然系统告诉您操作不允许,是Linux疯了么?当然不是,如果您会用lsattr命令,问题就有了答案。
  [root@zhangjixin zhang]# lsattr
  ---i---------- ./1.txt
  -------------- ./ip.sh
  -------------- ./ifconfig.sh
  秘密终于暴露了,在lsattr命令下,这个1.txt文件带有一个"i"的属性,所以才不可以删除。您现在可以用下边的一系列命令:
  [root@zhangjixin zhang]# lsattr 1.txt
  ---i---------- 1.txt
  [root@zhangjixin zhang]# chattr -i 1.txt
    [root@zhangjixin zhang]# lsattr
------------- ./1.txt
------------- ./ip.sh
------------- ./ifconfig.sh
 
  [root@zhangjixin zhang]# rm -rf 1.txt
  [root@zhangjixin zhang]#
  成功了,这个属性专门用来保护重要的文件不被删除,通常的情况下,懂得用这几个命令的通常系统管理员有能力判断这个文件是否可以被删除。 如果您想给一个文件多加点保护,可以使用下边的命令:
  chattr +i filename
  命令,这样一来,想要删除这个文件就要多一个步骤。同时,这样的文件也是不可以编辑和修改的。只有root用户才能使用chattr命令。此命令可以在Linux ext2ext3系统上使用。