Linux 文件管理-基础知识-文件与目录管理-【rm】 删除给定的文件和目录

rm

用于删除给定的文件和目录

补充说明

rm 命令 可以删除一个目录中的一个或多个文件或目录,也可以将某个目录及其下属的所有文件及其子目录均删除掉。对于链接文件,只是删除整个链接文件,而原有文件保持不变。

注意:使用rm命令要格外小心。因为一旦删除了一个文件,就无法再恢复它。所以,在删除文件之前,最好再看一下文件的内容,确定是否真要删除。rm命令可以用-i选项,这个选项在使用文件扩展名字符删除多个文件时特别有用。使用这个选项,系统会要求你逐一确定是否要删除。这时,必须输入y并按Enter键,才能删除文件。如果仅按Enter键或其他字符,文件不会被删除。

语法

rm (选项)(参数)

选项

-d:直接把欲删除的目录的硬连接数据删除成0,删除该目录;
-f:强制删除文件或目录;
-i:删除已有文件或目录之前先询问用户;
-r或-R:递归处理,将指定目录下的所有文件与子目录一并处理;
--preserve-root:不对根目录进行递归操作;
-v:显示指令的详细执行过程。

参数

文件:指定被删除的文件列表,如果参数中含有目录,则必须加上-r或者-R选项。

实例

交互式删除当前目录下的文件test和example

rm -i test example
Remove test ?n(不删除文件test)
Remove example ?y(删除文件example)

删除当前目录下除隐含文件外的所有文件和子目录

# rm -r *

应注意,这样做是非常危险的!

rm 命令删除文件

# rm 文件1 文件2 ...
rm testfile.txt

rm 命令删除目录

rm -r [目录名称]
-r 表示递归地删除目录下的所有文件和目录。
-f 表示强制删除

在这里插入图片描述

删除操作前有确认提示

rm -i [文件/目录]

rm -r -i testdir

在这里插入图片描述

rm 忽略不存在的文件或目录

-f 选项(LCTT 译注:即 “force”)让此次操作强制执行,忽略错误提示

rm -f [文件...]

仅在某些场景下确认删除

选项 -I,可保证在删除超过 3 个文件时或递归删除时(LCTT 译注: 如删除目录)仅提示一次确认。

rm -I file1 file2 file3

删除根目录

当然,删除根目录(/)是 Linux 用户最不想要的操作,这也就是为什么默认 rm 命令不支持在根目录上执行递归删除操作。
然而,如果你非得完成这个操作,你需要使用 --no-preserve-root 选项。当提供此选项,rm 就不会特殊处理根目录(/)了。

不给实例了,操作系统都被你删除了,你太坏了😆

rm 显示当前删除操作的详情

rm -v [文件/目录]

rm命令如何在删除文件时排除忽略某特定文件

方法一、使用扩展通配符

1
首先开启扩展通配符
shopt -s  extglob
rm命令如何在删除文件时排除忽略某特定文件
2
也可以先查看是否开启
shopt -s
rm命令如何在删除文件时排除忽略某特定文件
3
在test文件夹下有1.tt、1.png、index.html,现在要删除除1.tt之外的所有文件,则可以执行如下命令
rm -rf !(1.tt)
rm命令如何在删除文件时排除忽略某特定文件

方法二、find命令法

1
在test文件夹下有1.tt、1.png、index.html,现在要删除除1.tt之外的所有文件,则可以执行如下命令
find . -not -name "1.tt" -exec rm -rf {} \;
在执行的时候有一个提示,不用管它,因为.和..是系统默认指明为当前目录和上级
目录的,不会删除的。
rm命令如何在删除文件时排除忽略某特定文件
2
也可以将find的结果通过xargs进行转换后再交给rm命令处理。
find . -not -name "1.tt" | xargs rm -rf
rm命令如何在删除文件时排除忽略某特定文件

方法三、shell脚本

1

在test文件夹下有1.tt、1.png、index.html,现在要删除除1.tt之外的所有文件,则可以编写如下脚本:
for i in `ls`;do if [ "$i" != 1.tt ];then rm -rf $i;fi;done;
执行效果如下图所示。
rm命令如何在删除文件时排除忽略某特定文件
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值