Linux でファイルが空かどうかを確認する方法

LinuxLinuxBeginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

この実験では、Linux で様々なコマンドラインツールを使ってファイルが空かどうかを確認する方法を学びます。3 つの一般的な方法を探ります。test -s コマンドを使ってファイルサイズを確認する方法、wc -c コマンドを使ってファイル内のバイト数を数える方法、そして最後に cat コマンドで直接ファイルの内容を調べる方法です。実際の例を通じて、各方法がどのように機能するか、およびそれらの出力をどのように解釈してファイルにデータが含まれているかを判断するかを理解します。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicSystemCommandsGroup(["Basic System Commands"]) linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux/BasicSystemCommandsGroup -.-> linux/echo("Text Display") linux/BasicSystemCommandsGroup -.-> linux/test("Condition Testing") linux/BasicFileOperationsGroup -.-> linux/touch("File Creating/Updating") linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/BasicFileOperationsGroup -.-> linux/wc("Text Counting") subgraph Lab Skills linux/echo -.-> lab-558711{{"Linux でファイルが空かどうかを確認する方法"}} linux/test -.-> lab-558711{{"Linux でファイルが空かどうかを確認する方法"}} linux/touch -.-> lab-558711{{"Linux でファイルが空かどうかを確認する方法"}} linux/cat -.-> lab-558711{{"Linux でファイルが空かどうかを確認する方法"}} linux/wc -.-> lab-558711{{"Linux でファイルが空かどうかを確認する方法"}} end

test -s でファイルサイズを確認する

このステップでは、test コマンドに -s オプションを指定して、ファイルが存在し且つ空でないことを確認する方法を学びます。test コマンドは、条件式を評価するために使用されるシェルの組み込みコマンドです。シェルスクリプトで判断を行う際によく使われます。

test コマンドに -s オプションを指定すると、ファイルが存在し、かつサイズがゼロより大きい(つまり、空でない)かどうかを確認します。

まず、~/project ディレクトリに空のファイルと空でないファイルを作成しましょう。

ターミナルが開いていない場合は開きます。デフォルトでは ~/project ディレクトリにいるはずです。

empty_file.txt という名前の空のファイルを作成します。

touch empty_file.txt

次に、non_empty_file.txt という名前のファイルを作成し、echo コマンドとリダイレクト演算子 > を使ってその中にいくつかのテキストを追加します。> 演算子は、コマンドの出力をファイルにリダイレクトします。ファイルが存在しない場合は作成され、存在する場合はその内容が上書きされます。

echo "This file has content." > non_empty_file.txt

では、test -s コマンドを使ってこれらのファイルを確認しましょう。test コマンドは成功時に出力を生成しません。終了ステータスを使って成功または失敗を示します。終了ステータスが 0 は成功(条件が真)を意味し、ゼロ以外の終了ステータスは失敗(条件が偽)を意味します。

特殊変数 $? を使って前のコマンドの終了ステータスを確認することができます。

空のファイルを確認します。

test -s empty_file.txt
echo $?

出力が 1 と表示されるはずです。これは、empty_file.txt について条件(ファイルが存在し且つ空でない)が偽であることを示しています。

次に、空でないファイルを確認します。

test -s non_empty_file.txt
echo $?

出力が 0 と表示されるはずです。これは、non_empty_file.txt について条件が真であることを示しています。

これは、シェルスクリプトでファイルのプロパティを確認する基本的な方法です。ファイルを処理する前に、ファイルに内容があることを確認するためにこの方法を使うことができます。

続ける をクリックして次に進みます。

wc -c を使ってファイルのバイト数を数える

このステップでは、wc コマンドに -c オプションを指定して、ファイル内のバイト数を数える方法を学びます。wc コマンドは、各ファイルの改行、単語、およびバイト数を出力するユーティリティです。

-c オプションは、wc にバイト数のみを数えるよう指示します。

前のステップで作成したファイル empty_file.txtnon_empty_file.txt を使いましょう。

まず、empty_file.txt のバイト数を数えます。~/project ディレクトリにいることを確認してください。

wc -c empty_file.txt

次のような出力が表示されるはずです。

0 empty_file.txt

これは、empty_file.txt が 0 バイトであることを示しており、空のファイルなので当然の結果です。

次に、non_empty_file.txt のバイト数を数えます。

wc -c non_empty_file.txt

次のような出力が表示されるはずです。

23 non_empty_file.txt

数字の 23 は、「This file has content.」というファイルのバイト数を表しており、echo によって追加された改行文字も含まれています。通常、各文字は 1 バイトを占めます。

wc コマンドは、ファイルのサイズに関する情報をすぐに取得するのに非常に便利です。オプションを指定せずに wc を使うと、行、単語、およびバイト数を取得することもできます。wc non_empty_file.txt を実行して、その違いを確認してみてください。

続ける をクリックして次のステップに進みます。

cat コマンドでファイルの内容を表示する

このステップでは、cat コマンドを使ってファイルの内容を表示する方法を学びます。cat コマンドは "concatenate" の略で、主にファイルの内容を表示するために使用されます。

前のステップで作成したファイル empty_file.txtnon_empty_file.txt を使いましょう。~/project ディレクトリにいることを確認してください。

まず、empty_file.txt の内容を表示してみましょう。

cat empty_file.txt

empty_file.txt は空のファイルなので、cat コマンドは何も出力しません。

次に、non_empty_file.txt の内容を表示します。

cat non_empty_file.txt

前のステップで追加した内容が表示されるはずです。

This file has content.

cat コマンドは、ファイルの全内容をターミナルに直接表示する簡単で迅速な方法です。ただし、非常に大きなファイルに対して cat を使用する場合は注意が必要です。なぜなら、すべての内容が画面に出力され、圧倒的な量になる可能性があるからです。大きなファイルの場合は、lessmore などのコマンドの方が適しています。これらのコマンドでは、内容をページごとに表示できます。

また、cat を使って複数のファイルの内容を結合して表示することもできます。たとえば、file1.txtfile2.txt がある場合、cat file1.txt file2.txt とすると、file1.txt の内容の後に file2.txt の内容が表示されます。

続ける をクリックしてこの実験を完了します。

まとめ

この実験では、Linux で test -s コマンドを使用してファイルが空かどうかを確認する方法を学びました。このコマンドは、ファイルが存在し、サイズがゼロより大きいかどうかを確認します。結果が真(空でない)の場合は終了ステータス 0 を返し、偽(空または存在しない)の場合は 1 を返します。空のファイルと空でないファイルを作成し、test -s を使用してそれらの状態を確認し、$? で終了ステータスをチェックする練習を行いました。