11-Linux基礎入門(九)-Linux的通配符
Linux的通配符和正則表達式是不一樣的,因此代表的意義也是有較大區別的。通配符一般用於用戶命令行bash環境,而Linux正則表達式用於grep、sed、awk場景。
符號 | 代表含義 |
* | 所有(0到多個)字符 |
? | 任意一個字符 |
; | 連續不同命令的分隔符 |
# | 配置文件註釋 |
| | 管道 |
~ | 當前用戶的家目錄 |
- | 上一次所在的路徑 |
$ | 變量前需要加的符號 |
/ | 路徑分隔符號,也是根的意思 |
>或1> | 重定向(覆蓋原原有數據) |
>> | 追加重定向(追加內容文件尾部) |
< | 輸入重定向(xargs、tr) |
<< | 追加輸入重定向(cat) |
‘ | 單引號:不具有變量置換功能,輸出時候所見即所得 |
" | 雙引號:具有變量置換功能,解析變量後輸出,不加引號相當於雙引號,常用雙引號 |
` | 反引號(TAB上邊的按鍵):兩個``中間為命令,會先執行,等價於$() |
{} | 中間為命令區塊組合或內容序列 |
! | 邏輯運算中的“非”(NOT) |
&& | 並且(AND):當前一個指令執行成功時,執行後一個指令 |
|| | 或者(OR):當前一個指令執行失敗時,執行後一個指令 |
.. | 上一級目錄 |
. | 當前目錄 |
二、一些通配符的應用舉例
1、*號
[root@centos ~]# mkdir test
[root@centos ~]# cd test
[root@centos test]# touch test.sh zhangyujia.sh zhangyj.sh
[root@centos test]# ls
test.sh zhangyj.sh zhangyujia.sh
[root@centos test]# ls *.sh #在當前文件夾查詢以.sh結尾的所有文件
test.sh zhangyj.sh zhangyujia.sh
[root@centos test]# touch zhangyujia.txt
[root@centos test]# ls * #列出當前文件夾的所有文件
test.sh zhangyj.sh zhangyujia.sh zhangyujia.txt
2、?號
[root@centos test]# ls ????.sh #代表四個字符
test.sh
[root@centos test]# touch a.sh
[root@centos test]# ls ?.sh #代表一個字符
a.sh
註意:?號匹配且只匹配一個字符。
3、;號兩個命令之間的分隔符
[root@centos test]# ls;ls
a.sh test.sh zhangyj.sh zhangyujia.sh zhangyujia.txt
a.sh test.sh zhangyj.sh zhangyujia.sh zhangyujia.txt
4、{}內容序列舉例
#按需生成你想要的東西
[root@centos test]# echo zhangyujia{1,2,3}
zhangyujia1 zhangyujia2 zhangyujia3
[root@centos test]# echo zhangyujia{1..5}
zhangyujia1 zhangyujia2 zhangyujia3 zhangyujia4 zhangyujia5
[root@centos test]# echo zhangyujia{a..z}
zhangyujiaa zhangyujiab zhangyujiac zhangyujiad zhangyujiae zhangyujiaf zhangyujiag zhangyujiah zhangyujiai zhangyujiaj zhangyujiak zhangyujial zhangyujiam zhangyujian zhangyujiao zhangyujiap zhangyujiaq zhangyujiar zhangyujias zhangyujiat zhangyujiau zhangyujiav zhangyujiaw zhangyujiax zhangyujiay zhangyujiaz
#備份文件
[root@centos test]# cp a.txt{,.bak}
[root@centos test]# ls a*
a.sh a.txt a.txt.bak
#創建文件夾
[root@centos test]# mkdir /data/{1,2}/data -p
[root@centos test]# tree /data/
/data/
├── 1
│ └── data
└── 2
└── data
4 directories, 0 files
歡迎關註
新浪微博:https://weibo.com/yougazhang0506
微信公眾平臺:張雨嘉
我的網站:http://www.zhangyujia.cn
51CTO博客:http://blog.51cto.com/11099293
CSDN博客:http://blog.csdn.net/u013260195
GitHub:https://github.com/zhangyujia0506/
11-Linux基礎入門(九)-Linux的通配符