はじめに
Linux のワイルドカードは、ファイル名のパターンに基づいて一度に複数のファイルを検索および操作するための特殊文字です。これらは、コマンドライン環境でファイルを効率的に管理するための強力なツールです。この実験では、パターンマッチングに基づいてファイルの一覧表示、コピー、削除などの一般的な操作を行うために、さまざまなワイルドカードを使用する方法を学びます。
Linux のワイルドカードは、ファイル名のパターンに基づいて一度に複数のファイルを検索および操作するための特殊文字です。これらは、コマンドライン環境でファイルを効率的に管理するための強力なツールです。この実験では、パターンマッチングに基づいてファイルの一覧表示、コピー、削除などの一般的な操作を行うために、さまざまなワイルドカードを使用する方法を学びます。
アスタリスク * は、Linux で最も一般的なワイルドカード文字です。これは、ファイル名において任意の数の文字(0 文字を含む)を表します。この特性により、似た命名パターンを持つファイル群を扱う際に非常に便利です。
アスタリスクワイルドカードの使用を練習しましょう。
まず、ターミナルを開き、プロジェクトディレクトリに移動します。
cd ~/project
この実験用の練習ディレクトリを作成し、その中に移動します。
mkdir -p wildcard_practice
cd wildcard_practice
次に、操作対象となるサンプルファイルをいくつか作成します。
touch file1.txt file2.txt file3.txt document1.pdf document2.pdf image.jpg
ls コマンドを使用して、ディレクトリ内のすべてのファイルを一覧表示します。
ls
これで、先ほど作成したすべてのファイルが表示されるはずです。
document1.pdf document2.pdf file1.txt file2.txt file3.txt image.jpg
次に、アスタリスクワイルドカードを使用して、テキストファイルのみを一覧表示します。
ls *.txt
このコマンドでは、.txt で終わるファイルのみが表示されます。
file1.txt file2.txt file3.txt
ワイルドカードを使用して、特定のパターンで始まるファイルを検索することもできます。「file」で始まるすべてのファイルを一覧表示するには、次のコマンドを実行します。
ls file*
このコマンドでは、次のように表示されます。
file1.txt file2.txt file3.txt
すべての PDF ドキュメントを一覧表示するには、次のコマンドを使用します。
ls *.pdf
このコマンドでは、次のように表示されます。
document1.pdf document2.pdf
アスタリスクワイルドカードは汎用性が高く、パターン内の任意の位置で使用できます。たとえば、*1* は、名前のどこかに「1」が含まれるすべてのファイルにマッチします。
疑問符 ? ワイルドカードは、正確に 1 文字を表します。似た名前を持つが特定の位置で 1 文字だけ異なるファイルを検索する際に便利です。
疑問符ワイルドカードの動作を見てみましょう。
まだ wildcard_practice ディレクトリにいることを確認します。
cd ~/project/wildcard_practice
疑問符ワイルドカードをよりよく説明するために、いくつかの追加ファイルを作成します。
touch file-a.txt file-b.txt file-c.txt test1.log test2.log test3.log
「file-?.txt」形式のすべてのファイル(? は 1 文字)を一覧表示するには、次のコマンドを実行します。
ls file-?.txt
このコマンドでは、次のように表示されます。
file-a.txt file-b.txt file-c.txt
同様に、「test?.log」形式のすべてのファイルを一覧表示するには、次のコマンドを使用します。
ls test?.log
出力は次のようになります。
test1.log test2.log test3.log
複数の疑問符を組み合わせて、複数の 1 文字を検索することができます。たとえば、「file?」形式の名前を持つすべてのテキストファイルを検索するには、次のコマンドを使用します。
ls file?.txt
これにより、次のように表示されます。
file1.txt file2.txt file3.txt
疑問符ワイルドカードは、特定の位置に変化がある特定のパターンを検索する際に特に便利です。たとえば、1 桁の数字で終わり、その後に .log が続くファイルを検索する場合、次のコマンドを使用します。
ls test?.log
疑問符ワイルドカードは、正確に 1 文字にマッチするため、任意の数の文字にマッチするアスタリスクよりも具体的です。
角括弧 [] ワイルドカードを使用すると、ファイル名の特定の位置にマッチする文字の集合または範囲を指定できます。これにより、アスタリスクや疑問符のワイルドカードよりも精度の高い検索が可能になります。
角括弧ワイルドカードの使用を練習しましょう。
まだ wildcard_practice ディレクトリにいることを確認します。
cd ~/project/wildcard_practice
操作対象となる追加のファイルをいくつか作成します。
touch data-1.csv data-2.csv data-3.csv data-a.csv data-b.csv
特定の位置に数字があるファイルを一覧表示するには、範囲指定を含む角括弧表記を使用できます。
ls data-[1-3].csv
これにより、次のように表示されます。
data-1.csv data-2.csv data-3.csv
同様に、その位置に文字があるファイルを一覧表示するには、次のコマンドを使用します。
ls data-[a-z].csv
これにより、次のように表示されます。
data-a.csv data-b.csv
角括弧内に特定の文字を指定することもできます。たとえば、「data-」の後に '1' または 'a' があるファイルを一覧表示するには、次のコマンドを使用します。
ls data-[1a].csv
これにより、次のように表示されます。
data-1.csv data-a.csv
角括弧内のサーカムフレックス ^ 記号は、マッチを否定します。「data-」で始まり、「1」または「2」で終わるファイルを除くすべてのファイルを一覧表示するには、次のコマンドを使用します。
ls data-[^12].csv
このコマンドでは、次のように表示されます。
data-3.csv data-a.csv data-b.csv
角括弧を使用すると、特定の位置で特定の文字が異なるファイルを検索する際に、精密な制御が可能になります。
ここでは、さまざまな種類のワイルドカードを理解した上で、コピー、移動、削除などの一般的なファイル操作に使用する方法を見ていきます。
まず、wildcard_practice ディレクトリにいることを確認します。
cd ~/project/wildcard_practice
ファイルのコピーを保存するためのバックアップディレクトリを作成します。
mkdir backup
アスタリスクワイルドカードを使用して、すべてのテキストファイルをバックアップディレクトリにコピーします。
cp *.txt backup/
ファイルが正しくコピーされたことを確認します。
ls backup/
バックアップディレクトリにすべてのテキストファイルが表示されるはずです。
file-a.txt file-b.txt file-c.txt file1.txt file2.txt file3.txt
次に、異なるファイルタイプを整理するための別のディレクトリを作成します。
mkdir csv_files pdf_files log_files
すべての CSV ファイルを csv_files ディレクトリに移動します。
mv *.csv csv_files/
すべての PDF ファイルを pdf_files ディレクトリに移動します。
mv *.pdf pdf_files/
すべてのログファイルを log_files ディレクトリに移動します。
mv *.log log_files/
各ディレクトリに正しいファイルが含まれていることを確認します。
echo "CSV Files:"
ls csv_files/
echo "PDF Files:"
ls pdf_files/
echo "Log Files:"
ls log_files/
出力結果には、各ディレクトリに適切なファイルが表示されるはずです。
最後に、名前に数字が含まれるすべてのバックアップテキストファイルを削除して整理します。
rm backup/file[0-9].txt
バックアップディレクトリには文字で名付けられたテキストファイルのみが残っていることを確認します。
ls backup/
出力結果は次のように表示されるはずです。
file-a.txt file-b.txt file-c.txt
これらの例は、ワイルドカードが、そうでなければ複数のコマンドや個々のファイルの手動操作が必要なファイル管理タスクを大幅に簡素化できることを示しています。
この実験では、Linux のワイルドカードを使用して効率的にファイルを管理および操作する方法を学びました。カバーされた主要な概念は以下の通りです。
これらのワイルドカード技術は、複数のファイルを扱う際に時間を節約し、エラーを減らすため、すべての Linux ユーザーにとって不可欠なツールです。これらを使用すると、個々のファイルを個別に処理する代わりに、簡潔なコマンドで複雑なファイル操作を実行できます。
Linux システムを使い続けるうちに、これらのワイルドカードパターンを適用してワークフローを合理化し、生産性を向上させる機会が数多く見つかるでしょう。