シェルプログラミング-ワイルドカード[*?()[] {} \]

シェルコマンドでは、通常、ワイルドカード式を使用して一部のファイルを照合します



*

意味:任意の文字に一致します。
例:a*caとcの間の任意の長さの任意の文字、またはaabcc、axyzc、a012cなどの文字はありません。

ls /opt/a*b
abc addc .....

意味:任意の文字に一致します。
例:a?caとcは、abc、adc、aec、a_cなどの1つの長さの文字にのみ一致するか、まったく一致しません。

ls /opt/a?c
abc adc .....

()

意味:括弧内にシェルコマンドを実行します。この実行ではサブシェルが使用されます。これは、元のシェル環境が影響を受けないように、別のシェルが有効になっていることを意味します。

例如:子shell 执行 (umask :0000)  ,而环境的shell的 umask 依然是 :0022

[]

意味:角かっこ内の任意の文字に一致します。
例:a[xyz]caとcの間には1文字のみが必要ですが、axc、ayc、azcなどのx、y、またはzのみが必要です。c。
** ps:** 1つ追加する!と、否定を意味します

ls /opt/a[xyz]
axc ayc azc
ls /opt/a[!xy]
azc

{}

意味:中括弧内のセットを取得します。
例:{string1,string2,...}文字列a {abc、xyz、123} baおよびbのいずれか1つをsring1またはstring2(またはそれ以上)に一致させると、abc、xyz、または123Oneのいずれかになります。

ls /opt/a{
    
    abc,xyz}b
aabcb axyzb
拷贝相同路径文件时:
cp /opt/abc/123.txt   /opt/abc/456.txt
可以用大括号省去路径,改成:
cp /opt/abc/{
    
    123.txt,456.txt} 

\

意味:エスケープ文字を使用して、文字の元の意味を変更できます。
例:\nnは「n」ではなく、改行になります。\*「*」はワイルドカードであり、通常の*記号を表します

echo -e "anc"
anc
echo -e "a\nc"
a
c

おすすめ

転載: blog.csdn.net/qq_26129413/article/details/111334369