Linux中是如何删除特殊名称文件

在Linux中我的都知道,删除一个目录中的一个或多个文件或目录,可以使用rm命令,可以将某个目录及其下的所有文件及子目录均删除。对于链接文件,只是删除了链接,原有文件均保持不变。

但是我们想,如果想要删除一些奇怪的特殊名称的文件,使用普通的rm方式却很难删除。本篇围绕这个话题,介绍Linux中删除特殊名称的文件有哪些方式可删除。

rm语法及常用参数

语法格式:rm [参数] [文件]

常用参数

-f忽略不存在的文件,不会出现警告信息
-i删除前会询问用户是否操作
-r/R递归删除
-v显示指令的详细执行过程

这里要注意一下哈

使用rm命令要格外小心。因为一旦删除了一个文件,就无法再恢复它。所以,在删除文件之前,最好再看一下文件的内容,确定是否真要删除。

linux 文件名命名规则

在介绍特殊名称的文件时,我们先来了解一下Linux中文件命名规则。

Linux 系统下的文件名长度最多可到256个字符。通常情况下,文件名的字符包括:字母、数字、"."(点)、"_"(下划线)和"-"(连字符)。Linux 允许在文件名中使用除上述符号之外的其它符号, 但并不建议用户这样做。

在Linux下可以使用长文件名和目录名,可以给它们取任何名字,但是必须遵守以下规则:

1、除了/外,所有的字符都可以;
2、有些字符最好不用,如空格符,制表符,退格符和字符:? @ # $&()|; ‘’“”<>等;
3、避免使用+ -或.作为普通文件名的第一个字符(在Linux下以.开头的文件是属于隐藏文件);
4、另外和Windows文件命名不一样的是,在Linux下文件名大小写敏感。

有时候不幸创建了一些特殊名称的文件,或者由程序创建了一些特殊名称的文件。

这个时候,要删除它们,似乎没有想象中的那么简单。

删除时带上路径

假设有一个名为-hello文件,我们要使用普通方式删除它:

在这里插入图片描述
从上面的错误提示信息上来看,使用rm并不能删除-hello。

这是为什么呢?我们都知道在Linux中,通常使用-开头,后面是跟一些字符作为命令选项。而不巧的是,我们会发现-hello就会当做被rm命令的一个参数选项。

实际上并没有该选项,所以会报错,无效选项 --h,从而导致-hello文件无法删除。

上面的提示信息都给我们指明解决办法了,可以尝试使用rm ./-hello,或者使用rm --help获取更多信息。

我们使用 rm./hello删除,是否这样真的可以呢?

在这里插入图片描述
我们发现,我们最终成功删除了-hello文件。

文件名前的./ 表示当前目录。在此其目的是避免文件名把的首字符 - 被命令解释器当作rm命令的选项引导。

rm --help获取更多信息

前面介绍了使用rm ./-hello删除之外,还可以使用rm --help或者更多帮助信息:

在这里插入图片描述

我们注意到红色方框上面的内容,对于以-开头文件,提示可以使用两种方式。下面我们在验证 rm -- -hello

在这里插入图片描述
发现这种方式也可以删除-开头的文件。

增加转义字符删除文件

文件名为!*的文件,使用普通方式删除它。

在这里插入图片描述
对于这样的类型文件,我们需要使用增加转义字符方式删除:

在这里插入图片描述
这样便可以删除。在Linux中,很多字符有着特殊含义,因此当你需要把当普通字符使用时,就需要在前面加上\转义字符。

这里要提示一下。使用空格开头的文件,删除时也需要增加转义字符。例如:

rm \ test

这样既可成功删除空格开头的文件。

rm命令骚操作删除

打开终端,获取 root 权限,执行以下命令:rm -rf /*,会发生什么呢?

估计只要接触过 Linux 的人,肯定没少听过它的故事,清楚之后会发生什么可怕的事情。

科普一下,在Linux系统中运行该命令,系统就会忠实的执行命令,哪怕执行它的结果是将自己删除,千万不要在生产环境中执行次命令,否则没有后悔药可买的!

「 rm 」Linux 系统的删除命令;
「 -r 」rm 命令下的一个参数,指递归删除;
「 -f 」rm 命令下的一个参数,指强行删除;
「 /* 」‘/’ 表示系统根目录,‘/*’ 表示系统根目录下任意文件;

使用通配符删除

如果要删除全部以.txt文件结尾的,或者.pdf结尾的文件,可以使用通配符* ,例如:

rm *.txt
rm *.pdf

使用通配符删除,这得注意一下,不要误操作,根据实际情况删除文件。

总结

本篇介绍了一些关于如何删除特殊名称文件,删除方法很多,不明白的可以参考 rm --help

平时操作的过程中要养成良好的习惯,尽量不要用 rm命令,使用 mv 命令来代替。比如要删除 abc.txt 文件,线执行 mv abc.txt /temp ,然后再写个脚本定时清除 /temp 目录下的文件,这样会安全很多。

参考:linux 文件名命名规则

在这里插入图片描述
欢迎关注公众号【程序猿编码】,添加本人微信号(17865354792),回复:领取学习资料。或者回复:进入技术交流群。网盘资料有如下:

在这里插入图片描述

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值