linux rm 命令删除文件恢复_Linux中是如何删除特殊名称文件

19ce97d56556c38cd6ca0f3c4e25765e.png

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

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

rm语法及常用参数

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

常用参数

379c36c4eec33dc40524650b77c26bf0.png

这里要注意一下哈:

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

linux 文件名命名规则

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

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

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

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

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

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

删除时带上路径

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

41d6da69618a8fedb71a67779ac87533.png

从上面的错误提示信息上来看,使用rm并不能删除-hello。

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

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

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

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

7b32a4b9a93d1c79d9cfc03cda1b71b7.png

我们发现,我们最终成功删除了-hello文件。

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

rm --help获取更多信息

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

9dc1986d494dc0d1c6cdf99cac7b156f.png

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

38fe23872ac0b0e1d97565f31b04f8da.png

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

增加转义字符删除文件

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

b3e3cb2de4d684e1d1c518132e274b40.png

对于这样的类型文件,我们需要使用增加转义字符方式删除:

a9d59b334011ee02ae47dca0977cbef1.png

这样便可以删除。在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 文件名命名规则 - 程序园

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值