Bash에서 파일이 비어 있는지 확인
파일이 비어 있는지 확인해야 하는 경우가 종종 있으며 고맙게도 터미널에서 Bash를 사용하거나 Bash 스크립트를 사용하여 확인할 수 있는 몇 가지 간단한 방법이 있습니다.
test
명령을 -s
옵션 플래그와 함께 사용하여 Bash에서 파일이 비어 있는지 확인
test
명령은 가장 유용한 쉘 내장 명령 중 하나이며 파일 및 디렉토리에 대한 많은 옵션이 있습니다. test
명령의 -s
옵션은 파일 크기가 0보다 큰지 여부를 확인합니다.
파일 크기가 0을 초과하면 명령이 true를 반환합니다. 그렇지 않으면 false를 반환합니다.
test -s
의 사용은 아래에 설명되어 있습니다. 예를 들어 test
명령을 설명합니다.
이 예에는 newFile.txt
라는 파일이 있습니다. 다음과 같이 empty_test.sh
라는 Bash 스크립트를 생성합니다.
#!/bin/bash
test -s newFile.txt && echo "file has something" || echo "file is empty"
newFile.txt
파일이 비어 있으면 셸에 다음과 같은 출력이 표시됩니다.
반면에 newFile.txt
에 다음과 같은 내용이 있는 경우:
Hello!
그러면 출력은 다음과 같습니다.
위의 명령은 선택한 파일이 비어 있는지 여부를 확인하는 간단한 방법입니다. test -s newFile.txt
가 true로 평가되면 file has something
을 인쇄합니다.
그렇지 않으면 파일이 비어 있습니다
라고 인쇄됩니다. 이 명령은 Bash 스크립트에서 사용하거나 터미널에서 직접 실행할 수 있습니다.
이 명령이 검사 중인 파일과 다른 디렉터리 또는 수준에서 사용되는 경우 전체 파일 경로를 작성해야 한다는 점에 유의해야 합니다.
위의 명령을 작성하는 다른 방법이 있습니다. Bash에서 [
는 쉘 내장이며 test
명령과 동일합니다.
#!/bin/bash
[ -s newFile.txt ] && echo "file has something" || echo "file is empty"
이 명령은 이전에 사용한 명령과 동일합니다.
test -s
명령을 사용하여 지정된 디렉토리에서 모든 빈 파일을 찾을 수도 있습니다.
#!/bin/bash
for file in *.txt;
do if [ ! -s $file ];
then echo $file;
fi;
done
위의 명령은 디렉토리에 있는 모든 빈 .txt
파일의 이름을 인쇄합니다. .txt
를 다른 확장자로 바꾸면 다양한 유형의 파일을 확인하도록 쉽게 사용자 정의할 수 있습니다.
ls
명령을 사용하여 Bash에서 파일이 비어 있는지 확인
ls
명령은 현재 디렉토리의 모든 파일과 하위 디렉토리를 나열합니다. ls
명령은 -s
옵션 플래그와 함께 사용되어 파일 이름 옆에 파일 크기를 표시할 수도 있습니다.
예를 들어, 두 개의 하위 디렉토리와 .docx
파일로 생성한 test
디렉토리에서 ls -s
명령을 실행하면 다음과 같은 출력이 표시됩니다.
macOS에서 이 명령은 모든 하위 디렉터리의 크기를 0으로 표시한다는 점에 유의해야 합니다. 이는 하위 디렉터리에 다른 콘텐츠가 있는지 여부와 관계가 없습니다.
또한 사용 중인 기본 셸은 zsh
(bash
가 아님)입니다. 그러나 이것은 셸에 의한 차이가 아니라 운영 체제 자체에 따른 차이입니다.
특히 bash
를 사용하는 Linux 환경에서 이 결과를 설명하기 위해 Test 1
및 Test 2
라는 제목의 두 개의 빈 디렉토리가 있는 테스트 폴더를 만들었습니다. 또한 test.txt
에는 작은 문자열이 있고 test2.txt
는 빈 텍스트 파일인 두 개의 텍스트 파일이 포함되어 있습니다.
내용의 크기에 관계없이 하위 디렉토리는 4 킬로바이트
로 표시됩니다. 이것은 폴더의 실제 내용을 나타내지 않습니다. 이것은 항목 자체가 차지하는 공간입니다.
더 나은 방법은 ls
명령을 -l
옵션 플래그와 함께 사용하는 것입니다. 이렇게 하면 테이블 형식으로 더 많은 정보가 표시됩니다.
ls -l
이전과 동일한 Test
디렉토리에서 이 명령을 실행합니다. 출력은 다음과 같습니다.
위에서 볼 수 있듯이 ls -l
명령은 자세한 정보를 제공하고 올바른 하위 디렉토리 크기를 보여줍니다.
KB, MB 및 GB 단위로 크기를 보려면 -lh
옵션을 사용하십시오. h
플래그를 포함하면 데이터를 사람이 더 쉽게 읽을 수 있습니다.
출력은 다음과 같습니다.