Linux删除除了某些文件之外的所有文件或文件夹

这篇博客介绍了如何使用Linux shell的`shopt`和`extglob`选项来删除当前目录下除.zip和.txt文件外的所有其他文件和文件夹。通过开启`extglob`,可以使用模式匹配来执行`rm -rf`命令,从而实现特定文件类型的保留。内容包括了`shopt`的使用方法、`extglob`的开启和关闭,以及几个实用的shell命令实例。
摘要由CSDN通过智能技术生成

删除当前目录下除了.zip和.txt结尾的其他文件或文件夹
首先查看模式匹配是否开启
shopt extglob
extglob on
如果是on表示开启如果是off没有开启主动开启
shopt -s extglob

shopt extglob
shopt -s extglob
rm -rf !(*.zip|*.txt)

补充知识

linux shopt和extglob使用

shopt(shell option) 命令可以设置 shell 的可选参数。extglob是shopt的选项,如果开启 extglob 选项, shell 将启用模式匹配。

一、shopt使用
shopt [-psu] [optname …]
-s 开启某个选项。
-u 关闭某个选项。
-p 列出所有可设置的选项。

二、extglob使用
查看 extglob 选项是否开启(默认是off)
$ shopt extglob
extglob off

开启 extglob 选项
$ shopt -s extglob

此时查看 extglob 选项是否开启
$ shopt extglob
extglob on

关闭 extglob 选项
$ shopt -u extglob

三、实例
1、将目录下所有的文件和目录移动到 backup 目录中。当前目录下3个文件以及两个目录
$ ls
dir1 dir2 file1 file2 file3
新建一个 backup 目录
$ mkdir -p backup
将除了 backup 目录的其他文件和目录移动到 backup 目录下
$ mv !(backup) backup/
查看结果
$ ls
backup
$ ls backup/
dir1 dir2 file1 file2 file3

2、删除当前目录下所有file开头的文件或目录
$ ls
backup dir1 dir2 file1 file2 file3
$ rm -rf file[1-3]
$ ls
backup dir1 dir2

3、移动除了 dir1 目录以及 file1 文件到 backup 目录下
$ mv !(dir1|file1|backup) backup/
$ ls
backup dir1 file1
$ ls backup/
dir2 file2 file3

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

云浩舟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值