Bashプログラミング
 Computer >> コンピューター >  >> プログラミング >> Bashプログラミング

【Bash入門】ファイルやディレクトリの存在確認方法と実用例

Linuxシステムでは、Bashのtestコマンドを使うことで、特定のファイルやディレクトリが存在するかどうかを簡単に確認できます。この記事では、基本構文から実際のスクリプト例まで、わかりやすく解説します。

testコマンドの基本構文

test EXPRESSION

testコマンドは、指定されたEXPRESSION(式)を評価し、結果が真(TRUE)か偽(FALSE)かを判定します。式は以下の演算子を使って構築でき、複数の演算子を組み合わせることも可能です。

演算子 説明
-d file fileがディレクトリである場合に真([[ -d demofile ]])
-e file fileが存在する場合に真([[ -e demofile ]])
-f file fileが通常のファイルである場合に真([[ -f demofile ]])
-h file fileがシンボリックリンクである場合に真([[ -h demofile ]])
-L file fileがシンボリックリンクである場合に真(-hと同様:[[ -L demofile ]])
-s file fileのサイズが0より大きい場合に真([[ -s demofile ]])

testコマンドは、ファイルの存在確認以外にも、日付・種類・パーミッションの比較や、文字列・数値の比較など、幅広い用途に活用できます。詳細なマニュアルを確認したい場合は、Linuxシェルで以下のコマンドを実行してください。

man test

サンプルコードに登場する[[ ]](二重角括弧)は、testコマンドの代わりに条件式を記述できるBashの構文です。本記事では初心者にも理解しやすいよう、testコマンドを直接記述する形式で統一して解説します。

testコマンドの使用例

&&演算子を使えば、testコマンドが真(TRUE)を返した場合にのみ、続くコマンドを実行できます。シェル上で手軽に存在チェックを行いたいときに便利な方法です。

test -e /path/to/myfile && echo "ファイルまたはディレクトリが存在します。"

if文との組み合わせ方

if..else文とtestコマンドを組み合わせると、条件分岐を持つシェルスクリプトを作成できます。ファイルの種類に応じて異なる処理を行いたい場合に特に有効です。

if test -f path/to/myfile; then
    echo "ファイルが存在し、通常のファイルです。"
elif test -d path/to/myfile; then
    echo "ファイルが存在し、ディレクトリです。"
else 
    echo "ファイルは存在しません。"
fi

まとめ

ユーザーのファイルシステムへ書き込む際、事前確認なしにファイルを変更・作成するのは非常に危険です。気づかないうちに貴重なデータを上書き・破壊してしまい、深刻なトラブルに発展する恐れがあります。

質の高いスクリプトは、まず対象ファイルの存在を確認し、必要に応じてユーザーに次の操作を問い合わせる設計になっています。本記事で紹介した方法をベースにすれば、こうした安全な処理を簡単に実装できます。

Linuxシェルの操作に関するチュートリアルをもっと読みたい方は、こちらもぜひご覧ください!

  1. Macでファイルのチェックサムを確認する方法【ターミナルの使い方】

    ダウンロードしたファイルの整合性(データが破損・改ざんされていないか)を確認できるよう、一部のWebサイトではファイルのチェックサムを公開しています。ユーザーが行うべきことは、Webサイトに記載されているチェックサムと、自分のマシン上で生成したチェックサムを比較することです。両者が一致していれば、ファイルは問題なくダウンロードされ、Webサイトから配信された本来のファイルであり、改変されていないことが確認できます。チェックサムを掲載しているWebサイト側には独自の生成ツールがあるかもしれませんが、一般ユーザーは自分のマシン上でどのようにチェックサムを確認すればよいのでしょうか。これまでLinu

  2. 【Windows 10】宛先ディレクトリ内のファイル名を変更できないときの対処法12選

    Windows 10では、同じ操作でも複数の方法が用意されており、ファイル名の変更も例外ではありません。しかし、いざ名前を変更しようとした際に「エクスプローラーでファイル名を変更できない」「宛先ディレクトリ内のファイルが変更できない」といったエラーに遭遇することがあります。 こうしたエラーにはさまざまな原因が考えられますが、本記事では「ディレクトリ内のファイル名をどうやって変更すればいいのか?」という疑問にお答えし、問題を解決するための方法を順番に紹介します。 Windows 10で宛先ディレクトリ内のファイル名を変更する方法 具体的な対処法を見る前に、まずこの問題の主な原因を確認しておきま