強力なbashワイルドカード– 2.0
シェルワイルドカードと呼ばれるこれらのクールで小さなものがなければ、Linuxのコマンドラインで作業するのはかなり面倒です。 だからあなたはワイルドカードを有効に使うようにしてください。
< シェルワイルドカードとは >
ワイルドカード は、コマンドラインをどのGUIファイルマネージャーよりもはるかに強力にするシェル機能です。 グラフィカルファイルマネージャで大きなファイルグループを選択する場合は、通常、マウスでそれらを選択する必要があります。 これは単純に見えるかもしれませんが、場合によっては非常にイライラすることがあります。 たとえば、あらゆる種類のファイルとサブディレクトリが大量にあるディレクトリがあり、名前の途中に「linux」という単語が含まれるすべてのHTMLファイルをその大きなディレクトリからに移動するとします。別のディレクトリ。 これを行う簡単な方法は何ですか? ディレクトリに異なる名前のHTMLファイルが大量に含まれている場合、タスクは単純ではありません。
Linux CLIでは、そのタスクはXNUMXつのHTMLファイルのみを移動するのと同じくらい簡単に実行でき、次の理由で非常に簡単です。 シェルワイルドカード。 ワイルドカードは、特定の文字パターンに一致するファイル名を選択できる特殊文字です。 これにより、数文字を入力するだけで大きなファイルグループを選択できます。ほとんどの場合、マウスでファイルを選択するよりも簡単です。
bashで最も一般的に使用されるワイルドカードのリストは次のとおりです。
ワイルドカード | マッチ |
* | ゼロ個以上の文字 |
? | ちょうど1文字 |
[abcde] | 正確に1文字 |
[あー] | 与えられた範囲内のちょうど1文字 |
[!abcde] | リストされていない任意の文字 |
[!ae] | 与えられた範囲にない文字 |
{debian、linux} | 与えられたオプションの中の正確に一つの単語 |
引数としてファイル名を受け付けるコマンドでは、ワイルドカードを使用できます。
< ワイルドカードの例 >
いくつか例を挙げましょう。 Linuxだけでなく、他の多くの場所でも広く使用されているため、おそらく*文字はすでにおなじみです。 たとえば、次の例では、現在のディレクトリからすべてのファイルが削除されます。
$ rm *
次のコマンドは、名前に「linux」という単語が含まれているすべてのHTMLファイルを作業ディレクトリからという名前のディレクトリに移動します。 dir1
:
$ mv *linux*.html dir1
参照してください、私はあなたに言った、複数のファイルを移動することは1つのファイルだけを移動することと同じくらい簡単でありえます!
以下は、で始まるすべてのファイルを表示します。 d
そしてで終わる .txt
:
$ less d*.txt
次のコマンドは、名前がで始まるすべてのファイルを削除します。 junk.
あとに正確に3文字が続きます。
$ rm junk.???
このコマンドでは、名前がで始まるすべてのファイルまたはディレクトリを一覧表示します。 hda
その後に正確に1つの数字が続きます。
$ ls hda[0-9]
これは、で始まるすべてのファイルまたはディレクトリを一覧表示します。 hda
その後に正確に2つの数字が続きます。
$ ls hda[0-9][0-9]
以下は、名前がどちらかで始まるすべてのファイルまたはディレクトリをリストします。 hd
or sd
、その後に続く任意の1文字 a
& c
:
$ ls {hd,sd}[a-c]
このコマンドは、大文字で始まるすべてのファイルをディレクトリにコピーします。 dir2
:
$ cp [A-Z]* dir2
これにより、で終わらないすべてのファイルが削除されます c
, e
, h
or g
:
$ rm *[!cehg]
私はこれらの例を続けていくことができますが、あなたはアイデアを得ます。 単純なパターンを使用することも、さまざまなワイルドカードを組み合わせて非常に複雑なパターンを作成することもできます。前に述べたように、ファイル名を引数として受け入れる任意のコマンドと共に使用できます。