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

作者: 程序猿编码 | 来源:发表于2020-05-01 16:02 被阅读0次

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

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

    rm语法及常用参数

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

    常用参数:

    这里要注意一下哈:

    使用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

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

    发现这种方式也可以删除-开头的文件。

    增加转义字符删除文件

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

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

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

    rm \ test
    

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

    rm命令骚操作删除

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

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

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

    使用通配符删除

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

    rm *.txt
    rm *.pdf
    

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

    总结

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

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

    参考:http://www.voidcn.com/article/p-yudehara-hg.html

    程序猿编码

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

    百度网盘

    相关文章

      网友评论

        本文标题:Linux中是如何删除特殊名称文件

        本文链接:https://www.haomeiwen.com/subject/qcjqghtx.html