Bash에서 파일 크기 찾기

MD Aminul Islam 2023년6월20일
  1. ls 키워드를 사용하여 Bash에서 파일 크기 찾기
  2. wc 키워드를 사용하여 Bash에서 파일 크기 찾기
  3. stat 키워드를 사용하여 Bash에서 파일 크기 찾기
Bash에서 파일 크기 찾기

한 위치에서 다른 위치로 파일을 전송할 수 있는 Bash 스크립트를 만드는 경우 작업 중인 파일의 크기를 알아야 할 수 있습니다.

Bash 스크립트에서 파일 크기를 찾는 방법에는 여러 가지가 있습니다. 이 기사에서는 Bash를 통해 파일 크기를 찾는 방법을 보여줍니다.

여기서는 세 가지 다른 방법에 대해 논의할 것이며 필요에 따라 완벽한 방법을 선택할 수 있습니다. 또한 주제를 더 쉽게 만들기 위해 필요한 예와 설명을 볼 것입니다.

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에서 사용할 수 있는 또 다른 키워드는 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 Shell 환경에서만 실행할 수 있습니다.

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