[Linux] 删除、移动文件排除

1.shopt命令
shopt 命令用于显示和设置shell中的行为选项
shopt -> shell option 这样记忆

shopt 命令
shopt [-psu] [optname …]
-s 开启某个选项
-u 关闭某个选项
-p 列出所有可设置的选项


2.扩展的模式匹配extglob
开启 shopt -s extglob
关闭 shopt -u extglob

[root@abc test]# shopt | grep extglob
extglob         off
[root@abc test]# shopt -s extglob
[root@abc test]# shopt | grep extglob
extglob         on
[root@abc test]# shopt -u extglob
[root@abc test]# shopt | grep extglob
extglob         off
[root@abc test]#

!(pattern-list)     #不匹配括号内的所给模式


【例1】移动文件排除
移动除了dir1目录以及file1文件到backup目录下

[root@abc test]# mkdir dir1 dir2 dir3
[root@abc test]# touch file1 file2 file3
[root@abc test]#
[root@abc test]# ls -l
total 0
drwxr-xr-x 2 root root 6 Jun  9 17:28 dir1
drwxr-xr-x 2 root root 6 Jun  9 17:28 dir2
drwxr-xr-x 2 root root 6 Jun  9 17:28 dir3
-rw-r--r-- 1 root root 0 Jun  9 17:28 file1
-rw-r--r-- 1 root root 0 Jun  9 17:28 file2
-rw-r--r-- 1 root root 0 Jun  9 17:28 file3
[root@abc test]#
[root@abc test]# mkdir backup
[root@abc test]# shopt -s extglob
[root@abc test]# mv !(dir1|file1|backup) backup/
[root@abc test]#
[root@abc test]# cd backup/
[root@abc backup]# ls
dir2  dir3  file2  file3
[root@abc backup]#
[root@abc backup]# mv ./* ..
[root@abc backup]# cd ..
[root@abc test]#


【例2】删除文件排除
删除当前路径除了backup和file1之外的路径和文件

[root@abc test]# ls
backup  dir1  dir2  dir3  file1  file2  file3
[root@abc test]#
[root@abc test]#
[root@abc test]# rm -rf !(backup|file1)
[root@abc test]# ls
backup  file1
[root@abc test]# shopt -u extglob
[root@abc test]#

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值