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

MD Aminul Islam 2023年6月20日
  1. ls キーワードを使用して Bash でファイル サイズを確認する
  2. wc キーワードを使用して Bash でファイル サイズを確認する
  3. stat キーワードを使用して 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 シェル環境でのみ実行可能です。

著者: MD Aminul Islam
MD Aminul Islam avatar MD Aminul Islam avatar

Aminul Is an Expert Technical Writer and Full-Stack Developer. He has hands-on working experience on numerous Developer Platforms and SAAS startups. He is highly skilled in numerous Programming languages and Frameworks. He can write professional technical articles like Reviews, Programming, Documentation, SOP, User manual, Whitepaper, etc.

LinkedIn

関連記事 - Bash File