파일 유형을 점검하고 값을 비교하는 명령어
조건 문에서 사용되어 다음 나오는 파일 또는 문자열등의 인수를 검사한다.참인 경우 0을 리턴하고 거짓인 경우 0이 아닌 값을 리턴 한다. 조건문에서 편리하게 사용할 수 있다.
test 자신이 어떤 명령을 수행하기 보다 조건문에 사용되는 파일이나 문자열등을 판단하는데 쓰이므로 다음 예제를 보는게 이해가 빠를 것이다.
간단한 if 조건문이다. if 조건문을 모를 경우 shell 부분을 참고하자. 위 예제에서 "-e"는 표현식으로 파일의 존재를 확인한다. 파일이 있으면 참값을 리턴한다. 여기서는 "mbox" 라는 파일이 존재하면 then 이후에 "참"을 보여주며 만약 존재하지 않으면 그냥 종료된다. "참"을 출력하였으므로 "mbox"파일이 있음을 확인할 수 있다.
확인하고 싶은 파일이나 문자열에 맞게 표현식을 사용하여 테스트한다.
표현식
-b : 파일만약 블록 특수 파일인 경우 참.
-c : 파일만약 문자 장치 파일인 경우 참.
-d : 파일만약 디렉토리면 참.
-e : 파일만약 파일이면 참.
-f : 파일만약 보통 파일이면 참.
-g : 파일만약 set-group-id 파일이면 참.
-k : 파일만약 "sticky" 비트 설정의 파일이면 참.
-L : 파일만약 심볼릭 링크 파일이면 참.
-p : 파일만약 명명된 파이프 파일이면 참.
-r : 파일만약 읽기 가능한 파일이면 참.
-s : 파일만약 0 보다 큰 크기를 갖는 파일이면 참.
-S : 파일만약 파일이 존재하고 소켓이면 참.
-t : [fd]만약 fd가 터미널 상에서 오픈된 것이면 참. 만약 fd가 생략되면 기본값은 1 (표준출력)이다.
-u : 파일만약 파일이 존재하고 set-user-id 비트 설정을 가지면 참.
-w : 파일만약 쓰기 가능 파일이면 참.
-x : 파일만약 실행 가능 파일이면 참.
-O : 파일만약 파일이 존재하고 유효 사용자 ID의 소유이면 참.
-G : 파일만약 파일이 존재하고 유효 그룹 ID의 소유이면 참.
파일1 -nt 파일2 : 만약 파일1이 파일2보다 최근에 생겼거나 수정되었다면 참
파일2 -ot 파일2 : 약 파일1이 파일2보다 오래된 것이면 참.
파일1 -ef 파일2 : 만약 파일1과 파일2가 같은 장치 같은 아이노드 번호를 갖는다면 참.
-z : 문자열만약 문자열의 길이가 0 이면 참.
-n : 문자열 문자열의 길일가 0 이 아니라면 참.
문자열1 = 문자열2 : 두 문자열이 같으면 참.
문자열1 != 문자열2 : 두 문자열이 같지 않으면 참.
! 표현식 : 표현식 이 거짓이면 참.
표현식1-a 표현식2 : 표현식1 과 표현식2 가 둘 다 참이면 참.
푠현식2 -o 표현식2 : 표현식1 또는 표현식2 둘 중 하나라도 참이면 참.
사용법 : test [표현식], test [옵션] --help : 사용법을 보여준다. --version : 버전정보를 보여준다.
조건 문에서 사용되어 다음 나오는 파일 또는 문자열등의 인수를 검사한다.참인 경우 0을 리턴하고 거짓인 경우 0이 아닌 값을 리턴 한다. 조건문에서 편리하게 사용할 수 있다.
test 자신이 어떤 명령을 수행하기 보다 조건문에 사용되는 파일이나 문자열등을 판단하는데 쓰이므로 다음 예제를 보는게 이해가 빠를 것이다.
# if test -e "mbox"; then echo "참" ; fi 참
간단한 if 조건문이다. if 조건문을 모를 경우 shell 부분을 참고하자. 위 예제에서 "-e"는 표현식으로 파일의 존재를 확인한다. 파일이 있으면 참값을 리턴한다. 여기서는 "mbox" 라는 파일이 존재하면 then 이후에 "참"을 보여주며 만약 존재하지 않으면 그냥 종료된다. "참"을 출력하였으므로 "mbox"파일이 있음을 확인할 수 있다.
확인하고 싶은 파일이나 문자열에 맞게 표현식을 사용하여 테스트한다.
표현식
-b : 파일만약 블록 특수 파일인 경우 참.
-c : 파일만약 문자 장치 파일인 경우 참.
-d : 파일만약 디렉토리면 참.
-e : 파일만약 파일이면 참.
-f : 파일만약 보통 파일이면 참.
-g : 파일만약 set-group-id 파일이면 참.
-k : 파일만약 "sticky" 비트 설정의 파일이면 참.
-L : 파일만약 심볼릭 링크 파일이면 참.
-p : 파일만약 명명된 파이프 파일이면 참.
-r : 파일만약 읽기 가능한 파일이면 참.
-s : 파일만약 0 보다 큰 크기를 갖는 파일이면 참.
-S : 파일만약 파일이 존재하고 소켓이면 참.
-t : [fd]만약 fd가 터미널 상에서 오픈된 것이면 참. 만약 fd가 생략되면 기본값은 1 (표준출력)이다.
-u : 파일만약 파일이 존재하고 set-user-id 비트 설정을 가지면 참.
-w : 파일만약 쓰기 가능 파일이면 참.
-x : 파일만약 실행 가능 파일이면 참.
-O : 파일만약 파일이 존재하고 유효 사용자 ID의 소유이면 참.
-G : 파일만약 파일이 존재하고 유효 그룹 ID의 소유이면 참.
파일1 -nt 파일2 : 만약 파일1이 파일2보다 최근에 생겼거나 수정되었다면 참
파일2 -ot 파일2 : 약 파일1이 파일2보다 오래된 것이면 참.
파일1 -ef 파일2 : 만약 파일1과 파일2가 같은 장치 같은 아이노드 번호를 갖는다면 참.
-z : 문자열만약 문자열의 길이가 0 이면 참.
-n : 문자열 문자열의 길일가 0 이 아니라면 참.
문자열1 = 문자열2 : 두 문자열이 같으면 참.
문자열1 != 문자열2 : 두 문자열이 같지 않으면 참.
! 표현식 : 표현식 이 거짓이면 참.
표현식1-a 표현식2 : 표현식1 과 표현식2 가 둘 다 참이면 참.
푠현식2 -o 표현식2 : 표현식1 또는 표현식2 둘 중 하나라도 참이면 참.