萬用字元 and [] 中括號的用法
檔案萬用字元
- 非預定義的字元類:
* 匹配零個或多個字元
? 匹配任何單個字元
~ 當前使用者家目錄
~username 使用者username家目錄
~+ 當前工作目錄
~- 前一個工作目錄
[0-9] 匹配數字範圍
[a-z] 字母
[A-Z] 字母
[wang] 匹配列表中的任何的一個字元
[^wang] 匹配列表中的所有字元以外的字元
- 預定義的字元類
man 7 glob
[:digit:] 任意數字,相當於0-9
[:lower:] 任意小寫字母
[:upper:] 任意大寫字母
[:alpha:] 任意大小寫字母
[:alnum:] 任意數字或字母
[:blank:] 水平空白字元
[:space:] 水平或垂直空白字元
[:punct:] 標點符號
[:print:] 可列印字元
[:cntrl:] 控制(非列印)字元
[:graph:] 圖形字元
[:xdigit:] 十六進位制字元
[^[:upper:]] 排除大寫字母
[^[:lower:]] 排除小寫字母
[^[:digit:]] 排除數字
示例
- 預定義的字元類示例
通過 ls f[a-Z]
檢視到的是大小寫混起來的,排列順序是 a A b B ... z Z
要想單獨檢視大寫字母或小寫字母命名的檔案,需要使用 [[:lower:]]
或 [[:upper:]]
由於 [:lower:]
等價於 a-z
, [:upper:]
等價於 A-Z
,所以需要載外面加上 []
[root@centos6 app]$ls f[a-z]
fa fB fd fE fg fH fj fK fm fN fp fQ fs fT fv fW fy
fA fc fD ff fG fi fJ fl fM fo fP fr fS fu fV fx fY
fb fC fe fF fh fI fk fL fn fO fq fR ft fU fw fX fz
[root@centos6 app]$ls f[[:lower:]]
fa fc fe fg fi fk fm fo fq fs fu fw fy
fb fd ff fh fj fl fn fp fr ft fv fx fz
[root@centos6 app]$
[root@centos6 app]$ls f[A-Z]
fA fc fD ff fG fi fJ fl fM fo fP fr fS fu fV fx fY
fb fC fe fF fh fI fk fL fn fO fq fR ft fU fw fX fz
fB fd fE fg fH fj fK fm fN fp fQ fs fT fv fW fy fZ
[root@centos6 app]$ls f[[:upper:]]
fA fC fE fG fI fK fM fO fQ fS fU fW fY
fB fD fF fH fJ fL fN fP fR fT fV fX fZ
[root@centos6 app]$
- 預定義的字元類和其他的混用
[root@centos6 app]$ls f[[:lower:]357]
f3 f7 fb fd ff fh fj fl fn fp fr ft fv fx fz
f5 fa fc fe fg fi fk fm fo fq fs fu fw fy
- 排除
[root@centos6 app]$ls f[^[:upper:]]
f1 f3 f5 f7 f9 fb fd ff fh fj fl fn fp fr ft fv fx fz
f2 f4 f6 f8 fa fc fe fg fi fk fm fo fq fs fu fw fy
[root@centos6 app]$ls f[^[:lower:]]
f1 f3 f5 f7 f9 fB fD fF fH fJ fL fN fP fR fT fV fX fZ
f2 f4 f6 f8 fA fC fE fG fI fK fM fO fQ fS fU fW fY
[root@centos6 app]$ls f[^[:digit:]]
fa fB fd fE fg fH fj fK fm fN fp fQ fs fT fv fW fy fZ
fA fc fD ff fG fi fJ fl fM fo fP fr fS fu fV fx fY
fb fC fe fF fh fI fk fL fn fO fq fR ft fU fw fX fz
[root@centos6 app]$ls f[^0-9]
fa fB fd fE fg fH fj fK fm fN fp fQ fs fT fv fW fy fZ
fA fc fD ff fG fi fJ fl fM fo fP fr fS fu fV fx fY
fb fC fe fF fh fI fk fL fn fO fq fR ft fU fw fX fz
[root@centos6 app]$
- 僅顯示但當前目錄下的隱藏檔案或資料夾
ls -d .[^.]*
ls -d .*
l.
l.
其實就是 ls -d .*
的別名
[root@centos6 ~]$ls -d .[^.]*
.abrt .cache .gconf .gtk-bookmarks .local .tcshrc
.bash_history .config .gconfd .gvfs .nautilus .viminfo
.bash_logout .cshrc .gnome2 .ICEauthority .pulse
.bash_profile .dbus .gnote .imsettings.log .pulse-cookie
.bashrc .esd_auth .gnupg .lesshst .ssh
[root@centos6 ~]$
[root@centos6 ~]$ls -d .*
. .bashrc .gconf .gvfs .pulse
.. .cache .gconfd .ICEauthority .pulse-cookie
.abrt .config .gnome2 .imsettings.log .ssh
.bash_history .cshrc .gnote .lesshst .tcshrc
.bash_logout .dbus .gnupg .local .viminfo
.bash_profile .esd_auth .gtk-bookmarks .nautilus
[root@centos6 ~]$
[root@centos6 ~]$l.
. .bashrc .gconf .gvfs .pulse
.. .cache .gconfd .ICEauthority .pulse-cookie
.abrt .config .gnome2 .imsettings.log .ssh
.bash_history .cshrc .gnote .lesshst .tcshrc
.bash_logout .dbus .gnupg .local .viminfo
.bash_profile .esd_auth .gtk-bookmarks .nautilus
[root@centos6 ~]$
https://www.cnblogs.com/shichangming/p/10011073.html