파일이 있는지 Bash 확인

대부분 파일이 있는지 여부를 확인하는 작업을 수행해야하는 상황을 찾을 수 있습니다.

Bash에서는 “test command”를 사용하여 파일이 있는지 확인하고 파일 유형을 확인할 수 있습니다.

다음은 테스트 명령의 구문입니다. 다음 명령 중 하나를 사용할 수 있습니다.

모든 POSIX 셸에 대해 스크립트를 이식 할 수 있도록하려면 단일 대괄호 “[“명령을 사용해야합니다. 업그레이드 된 버전의 테스트 명령에는 Bash, Zsh 및 Ksh를 기본 쉘로 사용하는 대부분의 최신 시스템에서 지원되는 이중 대괄호 “[[“가 포함되어 있습니다.

파일이 있는지 확인

파일이 있는지 확인하는 동안 가장 일반적으로 사용되는 파일 연산자는 -e 및 -f입니다. “-e”옵션은 유형에 관계없이 파일의 존재 여부를 확인하는 데 사용되며 “-f”옵션은 파일이 일반 파일 (디렉터리 나 장치가 아님) 인 경우에만 true 값을 반환하는 데 사용됩니다. / p>

파일이 존재하는지 여부를 확인하는 가장 일반적인 옵션은 “if 조건문”과 함께 테스트 명령을 사용하는 것입니다.

다음은 “read_file. txt “파일이 있습니다.

방법 1

방법 2

방법 3

출력

디렉토리에 파일 (read_file.txt)이 있으므로 세 가지 방법 모두에 대한 출력은 다음과 같습니다.

read_file.txt exist

파일이 존재하는지 여부에 따라 결과를 제공하는 작업을 수행하려면 if / then 구문을 다음과 같은 방법으로 :

출력

read_file.txt exist

if 문없이 test 명령을 사용할 수도 있습니다. 다음 방법 중 하나를 사용할 수 있습니다.

방법 1

방법 2

방법 3

출력

디렉토리에 파일 (read_file.txt)이 있으므로 세 가지 방법 모두에 대한 출력은 다음과 같습니다.

read_file.txt exist

다름 & &, || 연산자는 테스트 명령의 종료 상태가 “false”인 경우에만 실행됩니다.

출력

read_file.txt exist

파일의 존재 여부를 확인하기 위해 Bash에서 일반적으로 사용되는 방법입니다.

디렉토리가 있는지 확인

연산자 “-d”를 사용하면 파일이 디렉토리인지 여부를 테스트 할 수 있습니다.

다음은 “Javatpoint”디렉토리가 있는지 확인하는 방법입니다.

방법 1

방법 2

참고 : 단일 대괄호 “[“대신 이중 대괄호 “[[“를 사용할 수도 있습니다. .

출력

지정된 위치에 디렉토리 (Javatpoint라는 이름)가 있으므로 위의 두 메소드에 대한 출력은 다음과 같습니다.

Javatpoint is a directory

파일이 없는지 확인

느낌표 (!-논리적 NOT 연산자)를 사용하여 테스트 표현식을 부정 할 수 있습니다. 다음 예를 확인하세요.

위 스크립트는 다음과 같이 작성할 수도 있습니다.

출력

missing_read_file.txt unavailable

파일 테스트 연산자

테스트 명령에는 다음과 같은 파일 연산자가 포함되어 있습니다. 특정 유형의 파일에 대한 테스트 :

-b FileReturns “True”(FILE이 특수 블록으로 존재하는 경우) 파일.
-c FileReturns FILE이 특수 문자 파일로 존재하는 경우 “True”.
-d FileReturns 파일이 디렉토리로 존재하는 경우 “True”.
-e FileReturns “True “유형 (노드, 디렉토리, 소켓 등)에 관계없이 FILE이 파일로 존재하는 경우.
-f FileReturns “True ” FILE이 일반 파일 (디렉토리 또는 장치 아님)로 존재하는 경우.
-G FileReturns FILE이 존재하고 다음을 포함하는 경우 “True” 사용자가 통신을 실행하는 것과 동일한 그룹 그리고.
-h FileReturns FILE이 심볼릭 링크로 존재하는 경우 “True”.
-g FileReturns 파일이 존재하고 set-group-id (sgid) 플래그 세트를 포함하는 경우 “True”.
-k FileReturns 파일이 존재하고 고정 비트 플래그 세트를 포함하는 경우 “True”.
-L FileReturns FILE은 심볼릭 링크로 존재합니다.
-O FileReturns FILE이 존재하고 명령을 실행중인 사용자가 소유하고있는 경우 “True”.
-p FileReturns 파일이 파이프로 존재하는 경우 “참”.
– r FileReturns 파일이 읽을 수있는 파일로 존재하면 “True”를 반환합니다.
-S FileReturns “True”를 반환합니다. FILE은 소켓으로 존재합니다.
-s FileReturns 파일이 존재하고 크기가 0이 아닌 경우 “참”을 반환합니다.
-u FileReturns FILE이 존재하고 set-user-id (suid) 플래그가 설정된 경우 “True”를 반환합니다.
-w FileReturns 파일이 쓰기 가능한 파일로 존재하면 “True”.
-x FileReturns FILE이 쓰기 가능한 파일로 존재하면 “True” 실행 파일.

Write a Comment

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다