[Shell Script] 파일 존재 확인 방법
February 24, 2024
Shell script에서 어떤 경로의 파일이 존재하는지 확인하는 방법에 대해서 알아보겠습니다.
이 글의 예제들은 Ubuntu 20.04에서 Bash shell을 사용하여 작성되었습니다.
1. 파일 또는 디렉토리 존재 확인
아래와 같은 코드로 디렉토리 또는 파일이 존재하는지 확인할 수 있습니다.
-e
는 디렉토리/파일이 존재하는지 확인하는데 사용됨, 파일이 존재하면 true-a
도 디렉토리/파일 존재 유무를 확인하는데 사용되지만, 현재 deprecated 되었음
#!/bin/bash
filename="example.txt"
if [ -e "$filename" ]; then
echo "파일이 존재합니다."
else
echo "파일이 존재하지 않습니다."
fi
Output:
$ bash example.sh
파일이 존재합니다.
2. 디렉토리가 아닌 파일 존재 유무 확인
-e
는 파일이 아닌 디렉토리에 대해서도 존재 유무를 체크할 수 있습니다.
예를 들어, myfolder
는 디렉토리인데, 아래와 같이 -e
로 체크하면 파일이 존재한다고 인식합니다.
#!/bin/bash
filename="myfolder"
if [ -e "$filename" ]; then
echo "파일이 존재합니다."
else
echo "파일이 존재하지 않습니다."
fi
Output:
$ bash example.sh
파일이 존재합니다.
아래와 같이 체크하고 싶을 수 있습니다. 이럴 때는 -f
연산자로 체크하면 됩니다.
- 해당 패스가 디렉토리인 경우, false
- 해당 패스가 파일이고 존재하는 경우 true
- 해당 패스가 파일이고 존재하지 않는 경우 false
#!/bin/bash
filename="myfolder"
if [ -f "$filename" ]; then
echo "파일이 존재합니다."
else
echo "파일이 존재하지 않습니다."
fi
Output:
$ bash example.sh
파일이 존재하지 않습니다.
3. 파일이 아닌 디렉토리 존재 유무 확인
파일이 디렉토리인 경우만을 대상으로, 존재 유무를 확인하고 싶을 때는 -d
연산자를 사용하여 체크하면 됩니다.
- 파일인 경우 false
- 디렉토리이고, 존재하지 않는 경우 false
- 디렉토리이고, 존재하는 경우 true
#!/bin/bash
filename="myfolder"
if [ -d "$filename" ]; then
echo "파일이 존재합니다."
else
echo "파일이 존재하지 않습니다."
fi
Output:
$ bash example.sh
파일이 존재합니다.