linux萬用字元
在我們平常的 linux 使用中,在很多時候您可能需要一次對多個檔案系統物件執行單一操作(如 cp)。在這些情況下,直接在命令列中輸入許多檔名通常是很讓人厭煩的:
[root@admin ~]# cp file1 file2 file3 file4 file5 …filen /home/test/
為了解決這個問題, linux 內建的萬用字元就起到很好的作用了。它允許您通過使用萬用字元模式一次指定多個檔案。bash 和其它 linux 命令將通過在磁碟上查詢並找到任何與之匹配的檔案來解釋這種模式。因此,如果在當前工作目錄中,您有從 file1 到 filen 的檔案,那麼您可以輸入下面的命令來拷貝這些檔案:
[root@admin ~]# cp file[1-n] /home/test/
或者,如果您想要刪除檔名以 file 開頭的所有檔案,您可以輸入:
[root@admin ~]# rm file*
常用的萬用字元有:
將t1目錄下所有的隱藏檔案拷貝到當前目錄下(用 . 代表隱藏檔案)
[root@admin home]# cp t1/.* ./
結果:
cp: omitting directory `t1/.'
cp: omitting directory `t1/..'
報錯了,為什麼呢?說明這樣通配是錯的,原因t1/.*中的 . 在這裡代表的是當前目錄而不是隱藏檔案,如果這樣寫的話,就表示把當前目錄拷貝到當前目錄,這是個死迴圈。
應該像下面這樣寫
[root@admin home]# cp t1/.*txt ./
將t1目錄下所有的檔案拷貝到t2目錄中
[root@admin home]# cp t1/* t2/
ls 是列出目錄下所有的檔案列表,但不包括二級目錄中的內容,如果使用ls * 就會連二級目錄中的內容一起列出來,但是不會管**及其以上的目錄中的內容了,僅到二級目錄。如圖所示:
假如有1 - 100的整數的目錄檔案
#要求列出 2 、3、4開頭 5、6結尾的所有目錄
[root@admin tt]# ls
[2-4]*[5-6]
25 26 35 36 45 46
#列出2、3、4、5、6開頭,5、6、7結尾的目錄
[root@admin tt]# ls
[2-4,5-6]*[5-7]
25 26 27 35 36 37 45 46 47 55 56 57 65 66 67
[root@admin tt]# ls
[1-3,5-7]*[1-2,6-7]
11 16 21 26 31 36 51 56 61 66 71 76
12 17 22 27 32 37 52 57 62 67 72 77
使用 ? 通配乙個字元,例如:
[root@admin tt]# ls 2?
2021
2223
2425
2627
2829
Linux萬用字元
在使用shell命令對多個檔案物件執行單一操作時,例如刪除當前目錄下的file1到file8,多次使用相同的命令rm file1到rm file8非常麻煩,通常使用萬用字元模式解決這個問題 rm file 1 8 當使用萬用字元指定一種模式時,該模式與底層系統上的乙個或多個檔案匹配,shell以空格...
linux萬用字元
在您日常的 linux 使用中,有很多時候您可能需要一次對多個檔案系統物件執行單一操作 比如 rm 在這些 情況下,在命令列中輸入許多檔案通常讓人感到厭煩 rm file1 file2 file3 file4 file5 file6 file7 file8 為了解決這個問題,您可以利用 linux ...
linux萬用字元
touch a a6.log abc.log ac.txt b c c5.txt x.log a代表任意多個字元 例 查詢以 log 結尾的檔案 ll log 代表任意單個字元 例 只查詢a b c ll 代表 和 之間的某乙個字元,比如 0 9 可以代表0 9之間的任意乙個數字,a za z 可以...