写点什么

linux 中删除特殊文件

作者:入门小站
  • 2022 年 6 月 06 日
  • 本文字数:822 字

    阅读完需:约 3 分钟

常用的几种方法

  • 删除时带上路径

  • 删除时使用 --

  • 删除时用引号引起来

  • 使用转义字符辅助删除

  • 按照 i 节点号删除

  • 使用通配符删除

创建一个特殊文件

> echo "123" > -rumenz.txt> cat ./-rumenz.txt123
复制代码

删除-rumenz.txt

> rm -rf -rumenz.txtrm: invalid option -- 'u'Try 'rm ./-rumenz.txt' to remove the file ‘-rumenz.txt’.Try 'rm --help' for more information.
复制代码


由于-rumenz.txt里面包含特殊字符,所以常规的删除会报错。


> rm -rf ./-rumenz.txt
复制代码


可以添加路径./就可以成功删除

使用--删除-rumenz.txt文件

> rm -rf -- -rumenz.txt
复制代码


成功删除

删除时用引号引起来

对于特殊字符,如<>!*等组成的文件如何删除呢?,创建<>\!*.txt文件


> echo "123" > "<>\!*".txt
复制代码


对于这种类型的文件,我们需要用引号将文件名包含起来


> rm -rf "<>\!*".txt
复制代码


注意:文件名为!*的文件就不能通过这样的方式删除,因为!*是有其他含义的,可以使用转义删除

增加转义字符删除文件

既然!*无法通过加引号的方式删除,那还有什么办法吗?有!删除时,增加转义字符:


> echo "123" > \!*.txt> cat \!\*.txt 123
复制代码


删除需要加\转义


> rm -rf \!*.txt
复制代码

按照 i 节点号删除

很多时候,文件名压根没法输入,因为它们都是一堆乱码。我们可以使用inode删除


在操作系统中,它是如何识别一个文件的呢?它并不是通过文件名,而是通过一个 iNode 号,即 i 节点号来识别不同的文件,文件名不过是这个文件其中的一个属性而已。


> ls -i12345 䄀䈀䌀䐀䔀䘀䜀⸀䠀㔀䤀䨀.txt
复制代码


上面的文件名根本无法正常输入,这时候就可以使用inode删除。12345就是该文件的inode号。


> find ./ -inum 12345 -exec rm {}\;
复制代码

通配符删除所有文件

> rm *.txt
复制代码


直接匹配txt删除,容易误删,删除前考虑清楚。


原文链接:https://rumenz.com/rumenbiji/linux-rm-special-files.html微信公众号:入门小站


  • 回复【1001】获取 linux 常用命令速查手册

  • 回复【10010】获取 阿里云 ECS 运维 Linux 系统诊断

  • 回复【10012】获取 Linux 学习笔记【强悍总结值得一看】

  • 回复【10013】获取 shell 简明教程



发布于: 刚刚阅读数: 3
用户头像

入门小站

关注

还未添加个人签名 2020.01.18 加入

还未添加个人简介

评论

发布
暂无评论
linux中删除特殊文件_Linux_入门小站_InfoQ写作社区