HOWTO · Bash

Bashでファイルサイズを見つける

このチュートリアルでは、Bash でファイル サイズを見つける方法について説明します。

ある場所から別の場所にファイルを転送できる Bash スクリプトを作成している場合、作業中のファイルのサイズを知る必要がある場合があります。

Bash スクリプトでは、ファイルのサイズを確認する方法がいくつかあります。 この記事では、Bash を使用してファイルのサイズを確認する方法を示します。

ここでは、3つの異なる方法について説明します。ニーズに基づいて最適な方法を選択できます。 また、トピックを簡単にするために必要な例と説明も表示されます。

ls キーワードを使用して Bash でファイル サイズを確認する

ファイルのサイズは、キーワード ls である Bash の組み込みコマンドを使用して確認できます。 このキーワードを使用すると、次の例に従ってファイルのサイズを確認できます。

ls -lh Test.txt | awk '{print  $5}'

このコマンドを実行すると、次のような出力が得られます。

99

上記では、このメソッドの非常に単純な形式を共有しました。 以下の例では、ファイル サイズを確認するための整理された方法を共有します。

更新された例は次のとおりです。

echo "Enter the directory or name of the file:"
read File
FileSize=$(ls -lh $File | awk '{print  $5}')
echo "$File has a size of $FileSize"

上記の例では、ユーザー入力からファイル名を取得し、ファイル サイズを出力として提供します。

この例を実行すると、以下の出力が得られます。

Enter the directory or name of the file:
Test.txt
Test.txt has a size of 99

wc キーワードを使用して Bash でファイル サイズを確認する

ファイルサイズを見つけるために使用できる Bash で使用できるもう 1つのキーワードは wc です。 このコマンドを使用する最も簡単な方法を以下に示します。

wc -c Test.txt

上記のコマンド行を実行すると、以下の出力が得られます。

99 Test.txt

次に、高度な例を紹介します。 以下の例では、ユーザーがファイル サイズ形式を選択するオプションを提供します。

高度な例には、以下のコードが含まれています。

echo "Select the FORMAT for the size:"
echo """
        1. Bytes
        2. KiloBytes
        3. MegaBytes
        4. GigaBytes
     """
echo "--------------------------------------------------------"
read FORMAT

echo "Provide the Filename or Directory: "
read FILE
FileSize=$(wc -c $FILE | awk '{print $1}')
if [[("$FORMAT" == 1)]];
then
    echo "$FILE is approx $FileSize Bytes"
elif [[("$FORMAT" == 2)]];
then
    kb=$(bc <<<"scale=3; $FileSize / 1024")
    echo "$FILE is approximately $kb KB"
elif [[("$FORMAT" == 3)]];
then
    mb=$(bc <<<"scale=6; $FileSize / 1048576")
    echo "$FILE is approximately $mb MB"

elif [[("$FORMAT" == 4)]];
then
    gb=$(bc <<<"scale=12; $FileSize / 1073741824")
    echo "$FILE is approximately $gb GB"
else
    echo "Incorrect FORMAT."
    exit
fi

上記の例では、最初にユーザーにオプションを提供し、ユーザー入力を読み取りました。 次の部分では、ファイル名のユーザー入力を取得しました。

その後、ユーザーの選択に基づいてファイル サイズを変換し、結果を提供しました。

このコードを実行すると、以下の出力が得られます。

Select the FORMAT for the size:

        1. Bytes
        2. KiloBytes
        3. MegaBytes
        4. GigaBytes

--------------------------------------------------------
1
Provide the Filename or Directory:
Test.txt
Test.txt is approx 99 Bytes

stat キーワードを使用して Bash でファイル サイズを確認する

最後の方法では、Bash の別の組み込みキーワード stat を導入します。 このキーワードは、主にファイルに関連するすべての必要な情報を提供します。

ファイルサイズを見つける最も簡単な方法は次のとおりです。

stat Test.txt

上記で共有されている単一行のコマンドは、ファイル サイズと、名前、出生などのその他の詳細を提供します。上記のコマンドを実行すると、以下の出力が得られます。

  File: Test.txt
  Size: 99              Blocks: 0          IO Block: 4096   regular file
Device: 11h/17d Inode: 281474976715600  Links: 1
Access: (0777/-rwxrwxrwx)  Uid: ( 1000/  aminul)   Gid: ( 1000/  aminul)
Access: 2022-08-04 14:57:18.556623600 +0600
Modify: 2022-08-04 14:45:27.259462300 +0600
Change: 2022-08-04 14:45:27.259462300 +0600
 Birth: -

上記の例には、ファイルに関する不要な情報が含まれています。 ただし、以下の例では、これらを削除できます。

このメソッドに関する次の更新コードは次のとおりです。

echo "Enter the path or directory: "
read FilePath
FileSize=$(stat -c %s $FilePath)
echo "$FilePath is precise $FileSize bytes."

上記のコード例を実行すると、以下の出力が得られます。

Enter the path or directory:
Test.txt
Test.txt is precise 99 bytes.

この記事で使用するコードはすべて Bash で記述されていることに注意してください。 Linux シェル環境でのみ実行可能です。