シェルコマンドでは、通常、ワイルドカード式を使用して一部のファイルを照合します
*
意味:任意の文字に一致します。
例:a*c
aとcの間の任意の長さの任意の文字、またはaabcc、axyzc、a012cなどの文字はありません。
ls /opt/a*b
abc addc .....
?
意味:任意の文字に一致します。
例:a?c
aとcは、abc、adc、aec、a_cなどの1つの長さの文字にのみ一致するか、まったく一致しません。
ls /opt/a?c
abc adc .....
()
意味:括弧内にシェルコマンドを実行します。この実行ではサブシェルが使用されます。これは、元のシェル環境が影響を受けないように、別のシェルが有効になっていることを意味します。
例如:子shell 执行 (umask :0000) ,而环境的shell的 umask 依然是 :0022
[]
意味:角かっこ内の任意の文字に一致します。
例:a[xyz]c
aと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}
\
意味:エスケープ文字を使用して、文字の元の意味を変更できます。
例:\n
nは「n」ではなく、改行になります。\*
「*」はワイルドカードであり、通常の*記号を表します。
echo -e "anc"
anc
echo -e "a\nc"
a
c