在使用linux命令的時候,一時有點搞不清*的用法,於是整理記錄下,在做jenkins 持續集成時還是很有用的
“*”在通配符中是最常用的一種,主要整理下在使用Linux命令時,文件夾目錄的用法。
1.單獨的“*”
這里指的是只有“*”出現的情況,默認為單獨的一個,“*”沒有和其它字符聯合起來(表示目錄的“/”除外)時,這種情況通配的是該目錄下的所有非隱藏內容,包括非隱藏的目錄和非隱藏的文件。
如:ls *的時候,相當於ls當前目錄下的所有內容;
ls a* 因為星號表示一個或者多個字符,所以可以找到a開頭的所有文件;
ls *a 但是以a結尾的沒有,因為有文件的后綴,應該為ls *a.txt;
ls *a*表示中間段含有a的文件;
/a/* 匹配所有在a路徑下的文件,不包括文件夾
/a/*.x 匹配所有在a路徑下的.x文件
注意:“*”單獨出現匹配目錄下所有內容的用途十分廣泛,用起來也很方便。但是這是個危險操作,操作時一定要“pwd”確認當前目錄,或者使用絕對路徑,再或者使用至少一級的可以確定目錄路徑的相對路徑(比如rm –rf training/*就很安全,因為知道training是自己建立的;但是rm –rf conf/*就很危險,系統中有很多conf目錄)。rm –rf *;mv *;chmod *;chown *這些命令,如果執行路徑不對,而且執行者是root,那么都可以造成系統崩潰。
2.“.*”
表示的是該目錄下所有的隱藏文件和目錄以及”.”,”..”。可以嘗試執行 ls ~/.*
3.“**”
* 匹配0或者任意數量的字符
** 匹配0或者更多的目錄
如:
/**/a 匹配/b/a, /c/d/a, 和 /a,即匹配所有a文件夾,包括a為子文件夾的情況
/a/**/b 匹配所有以a為上層文件夾,b為子文件夾的情況
/a/**/* 匹配a路徑下的任何文件和子文件,包括文件夾
/**/*.x 匹配任何的.x文件
---------------------
原文鏈接:https://blog.csdn.net/qq_26878363/article/details/81635139
https://www.cnblogs.com/ssj0723/p/10682472.html
