Creative Saplings

Bash 또는 Shell에 파일이 있는지 확인하는 방법 (예제 포함)

2월 13, 2021
No Comments

목차

이 자습서에서는 bash 또는 셸 스크립팅에서 파일 및 디렉토리를 확인하는 데 사용할 수있는 다양한 속성을 다룹니다. ]와 함께 bash 조건식을 사용하거나 와 함께 테스트를 사용하여 파일이 있는지 확인할 수 있습니다.

모든 예제에 bash if 및 else 연산자를 사용하므로 다음을 읽어 보시기 바랍니다. 절대 초보자를위한 Bash if else 사용 가이드

1. Bash / Shell : 파일이 존재하고 일반 파일인지 확인

이 섹션에서는 bash에 일반 파일이 있는지 확인하는 예제를 보여줍니다.

1.1 : 방법 -1 : 단일 또는 이중 괄호 사용

이중 괄호 사용 ]

#!/bin/bashFILE="/etc/passwd"if ];then echo "$FILE exists"else echo "$FILE doesn"t exist"fi

단일 대괄호 사용

#!/bin/bashFILE="/etc/passwd"if ;then echo "$FILE exists"else echo "$FILE doesn"t exist"fi

1.2 : 방법 -2 : 테스트 명령 사용

test 명령은 파일 유형을 확인하고 비교하는 데 사용됩니다. 값.

#!/bin/bashFILE="/etc/passwd"if test -f $FILE; then echo "$FILE exists"else echo "$FILE missing"fi

1.3 : 방법 -3 : 한 줄

이 예에서는 여기에 단일 또는 이중 대괄호를 사용할 수 있습니다. 셸에서 하나의 라이너 코드를 작성할 때 항상 이중 대괄호를 사용하는 것이 좋습니다. 단어 분할이 발생할 때 콘솔에 경고를받을 위험을 최소화하기 때문입니다.

#!/bin/bashFILE="/etc/passwd"] && echo "$FILE exists" || echo "$FILE missing"

성공하면 && 뒤의 문이 실행됩니다. 첫 번째 조건이 FALSE를 반환하면 || 명령문이 실행됩니다.

일반 파일이 bash 또는 셸 스크립트에 한 줄로 존재하는지 확인하기 위해 테스트 명령을 사용하는 것과 유사합니다. .

#!/bin/bashFILE="/etc/passwd"test -f $FILE && echo "$FILE exists" || echo "$FILE missing"

2. Bash / Shell : 파일이 있는지 확인 (비어 있거나 비어 있지 않음)

파일이 있는지 확인하려면 비어 있거나 내용이있는 경우 “-s“속성을 사용합니다.

2.1 : 방법 -1 : 단일 또는 이중 괄호 사용

이중 괄호를 사용하여 파일이 존재하고 비어 있는지 확인하십시오. ]

#!/bin/bashFILE="/etc/passwd"if ]; then echo "$FILE exists and not empty"else echo "$FILE doesn"t exist or is empty"fi

파일 확인 이중 괄호를 사용하여 존재하고 비어 있거나 비어 있지 않습니다.

if ; then echo "$FILE exists and not empty"else echo "$FILE doesn"t exist or is empty"fi

2.2 : 방법 -2 : 테스트 명령 사용

테스트 명령을 사용하여 -s 속성을 결합하여 파일이 존재하고 비어 있거나 일부 내용이 있습니다.

2.3 : 방법 -3 : 한 줄

이러한 한 라이너에 이중 또는 단일 괄호를 모두 사용할 수 있지만 앞서 말했듯이 이중 괄호를 사용하는 것이 좋습니다.

#!/bin/bashFILE="/etc/passwd"test -s $FILE && echo "$FILE exists and not empty" || echo "$FILE doesn"t exist or is empty"

테스트 명령과 마찬가지로 && 및 ||를 사용할 수 있습니다. 연산자를 사용하여 쉘 스크립트 내에서 한 줄 명령으로 파일을 확인합니다.

#!/bin/bashFILE="/etc/passwd"] && echo "$FILE exists and not empty" || echo "$FILE doesn"t exist or is empty"

3. Bash / Shell : 디렉토리가 있는지 확인

Linux에서는 모든 것이 파일이라는 것을 알고 있기를 바랍니다. 따라서 디렉토리도 파일로 간주됩니다. “-d“속성을 사용하여 쉘 프로그래밍에 디렉토리가 있는지 확인할 수 있습니다.

3.1 : 방법 -1 : 이중 또는 단일 괄호 사용

단일 또는 이중 대괄호 ] 내에서 -d 속성을 사용하여 확인할 수 있습니다. 디렉토리가있는 경우

#!/bin/bashDIR="/var/log"if ]; then echo "$DIR exists"else echo "$DIR doesn"t exist"fi

마찬가지로이 예제에서는 단일 대괄호를 사용하여 디렉토리가 쉘 스크립트 내에 사전 설정되어 있는지 확인합니다.

#!/bin/bashDIR="/var/log"if ; then echo "$DIR exists"else echo "$DIR doesn"t exist"fi

3.2 : 방법 -2 : 테스트 명령 사용

이 예에서는 특정 작업을 수행하기 전에 테스트 명령을 사용하여 디렉터리가 있는지 여부를 확인합니다.

#!/bin/bashDIR="/var/log"if test -d $DIR; then echo "$DIR exists"else echo "$DIR doesn"t exist"fi

3.3 : 방법 -3 : 한 줄

이 예에서는 한 줄 형식의 단일 및 이중 대괄호를 사용하여 확인합니다. 디렉토리. 첫 번째 조건이 TRUE이면 && 연산자 뒤의 문이 실행되고 FALSE이면 || 조건의 문이 실행됩니다. .

#!/bin/bashDIR="/var/log"] && echo "$DIR exists" || echo "$DIR doesn"t exist"

대신 ]를 사용하는 것이 좋습니다. 쉘 프로그래밍에서 이러한 하나의 라이너 코드에 대해.

&& 및 ||와 유사하게 테스트 명령을 사용하여 확인할 수 있습니다. 디렉토리가있는 경우

#!/bin/bashDIR="/var/log"test -d $DIR && echo "$DIR exists" || echo "$DIR doesn"t exist"

4. Bash / Shell : 디렉토리가 있는지 확인 (비어 있거나 비어 있지 않음)

셸 속성이 없습니다. 이 튜토리얼의 다른 모든 예제와 시나리오에서 사용한 것처럼 디렉토리가 비어 있는지 여부를 확인하는 데 사용할 수있는 몇 가지 방법이 있습니다.

4.1 : 방법 -1 : 디렉터리 내용 나열 및 확인

이 예에서는 디렉터리 내용을 나열하고 출력을 억제 한 다음 종료 코드를 기반으로 디렉터리가 비어 있거나 일부가 포함되어 있는지 확인합니다. content

#!/bin/bashDIR="/tmp"if ls -1qA $DIR | grep -q . ; then echo "$DIR is not -empty"else echo "$DIR is empty"fi

NOT (!) 조건을 입력하여이 문제를 되돌릴 수도 있습니다. 따라서 다음과 같습니다.

#!/bin/bashDIR="/tmp"if ! ls -1qA $DIR | grep -q . ; then echo "$DIR is empty"else echo "$DIR is not-empty"fi

두 예제 스크립트에서 출력이 동일합니다.

4.2 : 방법 -2 : 사용 find 명령

우리는 find 명령을 사용하고 출력을 억제하여 대상 디렉토리에 내용이 있는지 확인할 수 있습니다.

#!/bin/bashDIR="/tmp"if find -- "$DIR" -prune -type d -empty | grep -q . ; then echo "$DIR is empty"else echo "$DIR is not-empty"fi

4.3 : 방법 -3 : 내용 나열

디렉토리가 비어 있는지 또는 일부 속성을 사용하지 않는지 쉽게 확인할 수있는 방법이 없기 때문에 다시 말씀 드렸듯이 디렉토리의 내용을 나열하겠습니다. 출력이 없으면 디렉토리가 비어 있거나 비어 있지 않은 것입니다.

#!/bin/bashDIR="/tmp"if ] ; then echo "$DIR is empty"else echo "$DIR is not-empty"fi

5. Bash / Shell : 테스트 파일에 대한 속성 목록

마찬가지로 심볼릭 링크, 파일 권한 등과 같은 다양한 파일 유형을 확인하기 위해 쉘 스크립트와 함께 사용할 수있는 더 많은 속성이 있습니다.

속성 의 역할
-a FILE FILE 존재
-b FILE FILE가 존재하며 블록 특수 파일입니다.
-c FILE 가 존재하며 문자 특수 파일입니다.
-d FILE FILE가 존재하며 디렉토리입니다.
FILE가있는 경우 참
-f FILE FILE가 존재하고 일반 파일 인 경우 참
-g FILE FILE가 존재하고 set-group-id 비트가 설정된 경우 True
-h FILE FILE가 존재하고 심볼릭 링크 인 경우 참
-k FILE FILE가 존재하고 “고정”비트가 설정된 경우 참
-p FILE FILE가 존재하고 명명 된 파이프 (FIFO)
-r FILE FILE 존재하며 읽을 수 있음
-s FILE FILE가 존재하며 크기가 0보다 큽니다.
-u FILE FILE가 존재하고 set-user-id 비트가 설정된 경우 참
-w FILE FILE가 존재하고 쓰기 가능한 경우 참
-x FILE FILE가 존재하고 실행 가능한 경우 True
-G FILE FILE가 존재하고 유효 그룹 ID가 소유하는 경우 참
-L FILE FILE가 존재하고 심볼릭 링크 인 경우 참
-N FILE FILE가 존재하고 마지막으로 읽은 이후 수정 된 경우 True
-o FILE FILE가 존재하고 유효자가 소유하는 경우 참 사용자 ID
-S FILE FILE가있는 경우 참 소켓입니다
FILE1 및 FILE2가 동일한 기기를 참조하고 inode 번호
FILE1 -nt FILE2 FILE1가 FILE2보다 최신 (수정 날짜에 따름) 또는 FILE1가 있고 FILE2가있는 경우 아님
FILE1 -ot FILE2 FILE1가 더 오래된 경우 True FILE2보다, 또는 FILE2가 있고 FILE1가없는 경우

결론

Articles
Previous Post

프랑스어로 환영한다고 말하는 방법

Next Post

ApexSQL 도구를 사용하여 원격 액세스를 구성하고 원격 SQL Server 인스턴스에 연결하는 방법

답글 남기기 답글 취소하기

최신 글

  • 2020 년 세계 최고의 사진 학교
  • 주권 시민이 반정부 철학을 도로로 가져옴
  • 치장 벽토 수리 비용 가이드
  • Muckrakers (한국어)
  • 정밀 종양학

보관함

  • 2021년 2월
  • 2021년 1월
  • 2020년 12월
  • 2020년 11월
  • 2020년 10월
  • 2020년 9월
  • Deutsch
  • Nederlands
  • Svenska
  • Norsk
  • Dansk
  • Español
  • Français
  • Português
  • Italiano
  • Română
  • Polski
  • Čeština
  • Magyar
  • Suomi
  • 日本語
  • 한국어
Proudly powered by WordPress | Theme: Fmi by Forrss.