ワイルドカード (メタ文字とも呼ばれます)は、他の文字を表す記号または特殊文字です。 lsコマンドやrmコマンドなどの任意のコマンドで使用できます。 特定の基準に一致するファイルを受容的に一覧表示または削除します。
また読む:Linuxでの演算子の連鎖に関する10の実用的な例
これらのワイルドカードはシェルによって解釈され、実行したコマンドに結果が返されます。 Linuxには3つの主要なワイルドカードがあります:
- アスタリスク
(*)
–文字なしを含む任意の文字の1つ以上の出現に一致します。 - 疑問符
(?)
–任意の文字の単一の出現を表すか一致します。 - 括弧で囲まれた文字
([ ])
–角括弧で囲まれた文字の出現に一致します。数字、文字、その他の特殊文字など、さまざまな種類の文字(英数字)を使用できます。
正しいファイル名に一致させるために使用するワイルドカードを慎重に選択する必要があります。以下の例で説明するように、1つの操作ですべてを組み合わせることができます。
Linuxでワイルドカードを使用してファイル名を照合する方法
この記事では、次のファイルを使用して各例を示します。
createbackup.sh list.sh lspace.sh speaker.sh listopen.sh lost.sh rename-files.sh topprocs.sh
1。 このコマンドは、l
で始まる名前のすべてのファイルを照合します (これは接頭辞です)そして任意の文字の1つ以上の出現で終わります。
$ ls -l l*
2。 この例は、*
の別の使用法を示しています users-0
で始まるすべてのファイル名をコピーします そして、任意の文字の1つ以上の出現で終わります。
$ mkdir -p users-info $ ls users-0* $ mv -v users-0* users-info/ # Option -v flag enables verbose output
3。 次のコマンドは、名前がl
で始まるすべてのファイルを照合します その後に任意の1文字が続き、st.sh
で終わります (これは接尾辞です)。
$ ls l?st.sh
4。 以下のコマンドは、l
で始まる名前のすべてのファイルを照合します 角括弧内の任意の文字が続きますが、st.sh
で終わります 。
$ ls l[abdcio]st.sh
Linuxでワイルドカードを組み合わせてファイル名を一致させる方法
次の例で説明するように、ワイルドカードを組み合わせて、複雑なファイル名一致基準を作成できます。
5。 このコマンドは、接頭辞が任意の2文字で、その後にst
が続くすべてのファイル名に一致します。 ただし、任意の文字が1回以上出現することで終了します。
$ ls $ ls ??st*
6。 この例は、これらの文字のいずれかで始まるファイル名と一致します[clst]
そして、任意の文字の1つ以上の出現で終わります。
$ ls $ ls [clst]*
7。 この例では、これらの文字のいずれかで始まるファイル名のみ[clst]
これらの[io]
のいずれかが続きます 次に任意の1文字、その後にt
最後に、任意の文字の1つ以上の出現がリストされます。
$ ls $ ls [clst][io]?t*
8。 ここでは、ファイル名の前に任意の文字が1つ以上出現し、その後にtar
という文字が続きます。 いずれかの文字の1つ以上の出現で終わるものは削除されます。
$ ls $ rm *tar* $ ls
Linuxで設定された文字を照合する方法
9。 次に、文字のセットを指定する方法を見てみましょう。システムユーザー情報を含む以下のファイル名を検討してください。
$ ls users-111.list users-1AA.list users-22A.list users-2aB.txt users-2ba.txt users-111.txt users-1AA.txt users-22A.txt users-2AB.txt users-2bA.txt users-11A.txt users-1AB.list users-2aA.txt users-2ba.list users-12A.txt users-1AB.txt users-2AB.list users-2bA.list
このコマンドは、名前がusers-i
で始まるすべてのファイルに一致します 、その後に数字、小文字または数字、数字、そして任意の文字の1つ以上の出現で終わります。
$ ls users-[0-9][a-z0-9][0-9]*
次のコマンドは、users-i
で始まるファイル名と一致します 、その後に数字、小文字または大文字または数字、数字、そして任意の文字の1つ以上の出現で終わります。
$ ls users-[0-9][a-zA-Z0-9][0-9]*
次のこのコマンドは、users-i
で始まるすべてのファイル名に一致します 、その後に数字、小文字または大文字または数字、次に小文字または大文字が続き、任意の文字が1つ以上出現して終了します。
$ ls users-[0-9][a-zA-Z0-9][a-zA-Z]*
Linuxで一連の文字を否定する方法
10。 !
を使用して、一連の文字を無効にすることもできます。 シンボル。次のコマンドは、users-i
で始まるすべてのファイル名を一覧表示します 、その後に数字、数字以外の有効なファイル命名文字、小文字または大文字が続き、任意の文字が1つ以上出現して終了します。
$ ls users-[0-9][!0-9][a-zA-Z]*
それは今のところすべてです!上記の例を試した場合は、Linuxでワイルドカードがファイル名と一致するように機能する方法を十分に理解しているはずです。
Linuxでワイルドカードを使用する例を示す次の記事もお読みください。
- LinuxでTarファイルを特定のディレクトリまたは別のディレクトリに抽出する方法
- ディレクトリ内のすべてのファイルを削除する3つの方法(拡張子が1つまたは少数のファイルを除く)
- Linuxで効果的なBashスクリプトを作成するための10の便利なヒント
- Awkおよび正規表現を使用してファイル内のテキストまたは文字列をフィルタリングする方法
共有することや質問がある場合は、以下のコメントフォームを使用してください。