set选项与shopt选项是两组不同的内容,用set -o和shopt -p可以分别查看两个组所有的打开和关闭的条目, 在默认状态下,有些是打开的,有些是关闭的,shopt各选项随着bash版本的更新会有增加,与shopt相关的基本操作如下:
# shopt -p 列出所有选项
# shopt -s 列出所有打开的选项
# shopt -s extglob 打开extglob选项
# shopt -u 列出所有关闭的选项
# shopt -u extglob 关闭extglob选项
举列说明:
cdspell 当cd进一个目录时,如果目录名被无意中打错,某个字母错了或者缺失,也一样可以进入这个目录。
dotglob 以点开头的隐藏文件可以不用前面加点而像其它文件一样正常地用通配符表示。
extglob 可以用rm !(*jpg)这样的方式来删除所有不以jpg结尾的文件名,也可以 rm *@(jpg|png) 这样地表示“或”,当然,还有其它.....
在bash的使用过程中需要熟悉这些选项,找到符合自己口味的设置。
一共9个文件,除了保留1,2,3的文件,其余删除.
[report@localhost~/tmp]$ls
1 2 3 4 5 6 7 8 9
[report@localhost~/tmp]$shopt -s extglob
[report@localhost~/tmp]$rm -rf !(1|2|3)
[report@localhost~/tmp]$ls
1 2 3
[report@localhost~/tmp]$shopt -u extglob