yel*_*von 5 centos shell-script
我有一个这样的文件夹结构。
folders
test1
test2.1
test49.85
test4.95.89
sample
support
util
Run Code Online (Sandbox Code Playgroud)
这些都是文件夹。我需要删除所有以 test 开头的文件夹,最近的文件夹除外。我也可以访问最新 ${newestTestFolder} 的文件夹名称。
在 Bash 中使用extglob:
$ ls -1
sample
support
test1
test2.1
test4.95.89
test49.85
util
$ newestTestFolder="test49.85"
$ shopt -s extglob
$ ls -d1 !(@(${newestTestFolder}|!(test*)))
test1
test2.1
test4.95.89
Run Code Online (Sandbox Code Playgroud)
这表明
$ rm -r !(@(${newestTestFolder}|!(test*)))
Run Code Online (Sandbox Code Playgroud)
在 Bash 中(启用extglob)在单个命令中完成您想要的操作 - 没有额外的进程调用(好吧,rm)。
Bash 手册中对该模式进行了解释,其含义是
!()-不是里面的模式@()-内的图案之一|- 分离图案| 归档时间: |
|
| 查看次数: |
449 次 |
| 最近记录: |