Linux中通配符


  通配符是由shell處理的, 它只會出現在 命令的“參數”里。當shell在“參數”中遇到了通配符時,shell會將其當作路徑或文件名去在磁盤上搜尋可能的匹配:若符合要求的匹配存在,則進行代換(路徑擴展);否則就將該通配符作為一個普通字符傳遞給“命令”,然后再由命令進行處理。總之,通配符 實際上就是一種shell實現的路徑擴展功能。在 通配符被處理后, shell會先完成該命令的重組,然后再繼續處理重組后的命令,直至執行該命令。

SHELL中的通配符

幫助手冊:# man 7 glob 

*

匹配任意長度的任意字符,可以是0個

?

匹配任意單個字符,必須是1個

[ ]

匹配指定字符范圍內的任意單個字符

[a-z,A-Z,0-9]

匹配所有數字字母,可以不加逗號

[a-z]

表示a-z,A-Y,表示a,A,b,B.....a。不包含Z

[A-Z]

表示A,b,B.....z,Z。不包含a

[a-Z]

表示所有大小寫字母

[:upper:]

所有大寫字母

[:lower:]

所有小寫字母

[:alpha:]

所有字母,大小寫

[:digit:]

所有數字

[:alnum:]

所有數字+字母

[:blank:]

水平空白字符

[:space:]

水平或垂直空白字符

[:punct:]

標點符號

[:print:]

可打印字符

[:cntrl:]

控制(非打印)字符

[:graph:]

圖形字符

[:xdigit:]

十六進制字符

[^]

匹配指定字符范圍外的任意單個字符

[^0-9]

相當於[^[:digit:]]

[^a-z]

表示Z + 其他

[^A-Z]

表示a + 其他

 

 示例:

1、顯示/etc目錄下,所有以.d結尾的文件或目錄

# ls -d /etc/*.d
/etc/bash_completion.d  /etc/modprobe.d      /etc/rc6.d
/etc/binfmt.d           /etc/modules-load.d  /etc/rc.d
/etc/chkconfig.d        /etc/my.cnf.d        /etc/request-key.d
/etc/cron.d             /etc/pam.d           /etc/rsyslog.d
/etc/depmod.d           /etc/popt.d          /etc/rwtab.d
/etc/dracut.conf.d      /etc/prelink.conf.d  /etc/setuptool.d
/etc/exports.d          /etc/profile.d       /etc/statetab.d
/etc/gdbinit.d          /etc/rc0.d           /etc/sudoers.d
/etc/grub.d             /etc/rc1.d           /etc/sysctl.d
/etc/init.d             /etc/rc2.d           /etc/tmpfiles.d
/etc/krb5.conf.d        /etc/rc3.d           /etc/xinetd.d
/etc/ld.so.conf.d       /etc/rc4.d           /etc/yum.repos.d
/etc/logrotate.d        /etc/rc5.d

2、顯示/etc目錄下,所有.conf結尾,且以m,n,r,p開頭的文件或目錄

#ls -d /etc/[mnrp]*.conf
/etc/man_db.conf  /etc/nfsmount.conf     /etc/resolv.conf
/etc/mke2fs.conf  /etc/nsswitch.conf     /etc/rsyncd.conf
/etc/nfs.conf     /etc/request-key.conf  /etc/rsyslog.conf

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM