Linux ワイルドカード文字

LinuxBeginner
オンラインで実践に進む

はじめに

Linux のワイルドカードは、ファイル名のパターンに基づいて一度に複数のファイルを検索および操作するための特殊文字です。これらは、コマンドライン環境でファイルを効率的に管理するための強力なツールです。この実験では、パターンマッチングに基づいてファイルの一覧表示、コピー、削除などの一般的な操作を行うために、さまざまなワイルドカードを使用する方法を学びます。

アスタリスク (*) ワイルドカードの理解

アスタリスク * は、Linux で最も一般的なワイルドカード文字です。これは、ファイル名において任意の数の文字(0 文字を含む)を表します。この特性により、似た命名パターンを持つファイル群を扱う際に非常に便利です。

アスタリスクワイルドカードの使用を練習しましょう。

  1. まず、ターミナルを開き、プロジェクトディレクトリに移動します。

    cd ~/project
  2. この実験用の練習ディレクトリを作成し、その中に移動します。

    mkdir -p wildcard_practice
    cd wildcard_practice
  3. 次に、操作対象となるサンプルファイルをいくつか作成します。

    touch file1.txt file2.txt file3.txt document1.pdf document2.pdf image.jpg
  4. ls コマンドを使用して、ディレクトリ内のすべてのファイルを一覧表示します。

    ls

    これで、先ほど作成したすべてのファイルが表示されるはずです。

    document1.pdf  document2.pdf  file1.txt  file2.txt  file3.txt  image.jpg
  5. 次に、アスタリスクワイルドカードを使用して、テキストファイルのみを一覧表示します。

    ls *.txt

    このコマンドでは、.txt で終わるファイルのみが表示されます。

    file1.txt  file2.txt  file3.txt
  6. ワイルドカードを使用して、特定のパターンで始まるファイルを検索することもできます。「file」で始まるすべてのファイルを一覧表示するには、次のコマンドを実行します。

    ls file*

    このコマンドでは、次のように表示されます。

    file1.txt  file2.txt  file3.txt
  7. すべての PDF ドキュメントを一覧表示するには、次のコマンドを使用します。

    ls *.pdf

    このコマンドでは、次のように表示されます。

    document1.pdf  document2.pdf

アスタリスクワイルドカードは汎用性が高く、パターン内の任意の位置で使用できます。たとえば、*1* は、名前のどこかに「1」が含まれるすべてのファイルにマッチします。

疑問符 (?) を使ったワイルドカードの使用

疑問符 ? ワイルドカードは、正確に 1 文字を表します。似た名前を持つが特定の位置で 1 文字だけ異なるファイルを検索する際に便利です。

疑問符ワイルドカードの動作を見てみましょう。

  1. まだ wildcard_practice ディレクトリにいることを確認します。

    cd ~/project/wildcard_practice
  2. 疑問符ワイルドカードをよりよく説明するために、いくつかの追加ファイルを作成します。

    touch file-a.txt file-b.txt file-c.txt test1.log test2.log test3.log
  3. 「file-?.txt」形式のすべてのファイル(? は 1 文字)を一覧表示するには、次のコマンドを実行します。

    ls file-?.txt

    このコマンドでは、次のように表示されます。

    file-a.txt  file-b.txt  file-c.txt
  4. 同様に、「test?.log」形式のすべてのファイルを一覧表示するには、次のコマンドを使用します。

    ls test?.log

    出力は次のようになります。

    test1.log  test2.log  test3.log
  5. 複数の疑問符を組み合わせて、複数の 1 文字を検索することができます。たとえば、「file?」形式の名前を持つすべてのテキストファイルを検索するには、次のコマンドを使用します。

    ls file?.txt

    これにより、次のように表示されます。

    file1.txt  file2.txt  file3.txt
  6. 疑問符ワイルドカードは、特定の位置に変化がある特定のパターンを検索する際に特に便利です。たとえば、1 桁の数字で終わり、その後に .log が続くファイルを検索する場合、次のコマンドを使用します。

    ls test?.log

疑問符ワイルドカードは、正確に 1 文字にマッチするため、任意の数の文字にマッチするアスタリスクよりも具体的です。

角括弧 [] を使った文字クラスの使用

角括弧 [] ワイルドカードを使用すると、ファイル名の特定の位置にマッチする文字の集合または範囲を指定できます。これにより、アスタリスクや疑問符のワイルドカードよりも精度の高い検索が可能になります。

角括弧ワイルドカードの使用を練習しましょう。

  1. まだ wildcard_practice ディレクトリにいることを確認します。

    cd ~/project/wildcard_practice
  2. 操作対象となる追加のファイルをいくつか作成します。

    touch data-1.csv data-2.csv data-3.csv data-a.csv data-b.csv
  3. 特定の位置に数字があるファイルを一覧表示するには、範囲指定を含む角括弧表記を使用できます。

    ls data-[1-3].csv

    これにより、次のように表示されます。

    data-1.csv  data-2.csv  data-3.csv
  4. 同様に、その位置に文字があるファイルを一覧表示するには、次のコマンドを使用します。

    ls data-[a-z].csv

    これにより、次のように表示されます。

    data-a.csv  data-b.csv
  5. 角括弧内に特定の文字を指定することもできます。たとえば、「data-」の後に '1' または 'a' があるファイルを一覧表示するには、次のコマンドを使用します。

    ls data-[1a].csv

    これにより、次のように表示されます。

    data-1.csv  data-a.csv
  6. 角括弧内のサーカムフレックス ^ 記号は、マッチを否定します。「data-」で始まり、「1」または「2」で終わるファイルを除くすべてのファイルを一覧表示するには、次のコマンドを使用します。

    ls data-[^12].csv

    このコマンドでは、次のように表示されます。

    data-3.csv  data-a.csv  data-b.csv

角括弧を使用すると、特定の位置で特定の文字が異なるファイルを検索する際に、精密な制御が可能になります。

ワイルドカードを用いた実用的なファイル操作

ここでは、さまざまな種類のワイルドカードを理解した上で、コピー、移動、削除などの一般的なファイル操作に使用する方法を見ていきます。

  1. まず、wildcard_practice ディレクトリにいることを確認します。

    cd ~/project/wildcard_practice
  2. ファイルのコピーを保存するためのバックアップディレクトリを作成します。

    mkdir backup
  3. アスタリスクワイルドカードを使用して、すべてのテキストファイルをバックアップディレクトリにコピーします。

    cp *.txt backup/
  4. ファイルが正しくコピーされたことを確認します。

    ls backup/

    バックアップディレクトリにすべてのテキストファイルが表示されるはずです。

    file-a.txt  file-b.txt  file-c.txt  file1.txt  file2.txt  file3.txt
  5. 次に、異なるファイルタイプを整理するための別のディレクトリを作成します。

    mkdir csv_files pdf_files log_files
  6. すべての CSV ファイルを csv_files ディレクトリに移動します。

    mv *.csv csv_files/
  7. すべての PDF ファイルを pdf_files ディレクトリに移動します。

    mv *.pdf pdf_files/
  8. すべてのログファイルを log_files ディレクトリに移動します。

    mv *.log log_files/
  9. 各ディレクトリに正しいファイルが含まれていることを確認します。

    echo "CSV Files:"
    ls csv_files/
    echo "PDF Files:"
    ls pdf_files/
    echo "Log Files:"
    ls log_files/

    出力結果には、各ディレクトリに適切なファイルが表示されるはずです。

  10. 最後に、名前に数字が含まれるすべてのバックアップテキストファイルを削除して整理します。

    rm backup/file[0-9].txt
  11. バックアップディレクトリには文字で名付けられたテキストファイルのみが残っていることを確認します。

    ls backup/

    出力結果は次のように表示されるはずです。

    file-a.txt  file-b.txt  file-c.txt

これらの例は、ワイルドカードが、そうでなければ複数のコマンドや個々のファイルの手動操作が必要なファイル管理タスクを大幅に簡素化できることを示しています。

まとめ

この実験では、Linux のワイルドカードを使用して効率的にファイルを管理および操作する方法を学びました。カバーされた主要な概念は以下の通りです。

  1. 任意の数の文字にマッチするアスタリスク (*) ワイルドカードの使用
  2. 正確に 1 文字にマッチする疑問符 (?) ワイルドカードの使用
  3. 特定の文字または範囲にマッチする角括弧 [] の使用
  4. ファイルの一覧表示、コピー、削除などの一般的なファイル操作へのワイルドカードの適用

これらのワイルドカード技術は、複数のファイルを扱う際に時間を節約し、エラーを減らすため、すべての Linux ユーザーにとって不可欠なツールです。これらを使用すると、個々のファイルを個別に処理する代わりに、簡潔なコマンドで複雑なファイル操作を実行できます。

Linux システムを使い続けるうちに、これらのワイルドカードパターンを適用してワークフローを合理化し、生産性を向上させる機会が数多く見つかるでしょう。