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 シェル環境でのみ実行可能です。