찾다
운영 및 유지보수리눅스 운영 및 유지 관리Bash에 파일이나 디렉터리가 있는지 확인하는 방법

셸 스크립트를 작성할 때 파일 존재 여부에 따라 작업을 수행해야 하는 경우가 많습니다. 그렇다면 파일이 존재하는지 확인하는 방법은 무엇입니까? 다음 기사에서는 테스트 명령을 사용하여 Bash에 파일이나 디렉터리가 있는지 확인하는 방법을 보여줍니다. 도움이 되기를 바랍니다.

Bash에 파일이나 디렉터리가 있는지 확인하는 방법

test command

Bash에서는 test 명령을 사용하여 파일이 존재하는지 확인하고 파일 유형을 확인할 수 있습니다.

test 명령은 다음 구문 형식 중 하나를 사용합니다.

test EXPRESSION
[ EXPRESSION ]
[[ EXPRESSION ]]

스크립트를 이식 가능하게 하려면 모든 POSIX 셸에서 사용할 수 있는 이전 test [ 명령을 사용하는 것이 좋습니다. 테스트 명령 [[(이중 괄호)의 새로운 업그레이드 버전은 bash, zsh 및 ksh를 기본 셸로 사용하는 대부분의 최신 시스템에서 지원됩니다.

테스트 명령의 파일 연산자

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

 ●  -b FILE : FILE이 존재하고 블록 특수 파일인 경우 True입니다.

 ● -c FILE: FILE이 존재하고 특수 문자 파일이면 True입니다.

 ● -d FILE: FILE이 존재하고 디렉터리이면 참입니다.

●  -e FILE : 유형(노드, 디렉터리, 소켓 등)에 관계없이 FILE이 존재하고 파일이면 참입니다.

 ● -f FILE : FILE이 존재하고 일반 파일(디렉토리나 장치가 아님)이면 True입니다.

 ● -G FILE: FILE이 존재하고 명령을 실행하는 사용자와 동일한 그룹에 있으면 참입니다.

 ● -h FILE: FILE이 존재하고 심볼릭 링크이면 참입니다.

 ● -g FILE: FILE이 존재하고 set-group-id(sgid) 플래그가 설정되어 있으면 참입니다.

 ●  -k FILE: FILE이 존재하고 고정 비트 플래그가 설정되어 있으면 참입니다.

 ● -L FILE: FILE이 존재하고 심볼릭 링크이면 참입니다.

 ●  -O FILE : FILE이 존재하고 명령을 실행하는 사용자가 소유한 경우 참입니다.

 ● -p FILE: FILE이 존재하고 파이프이면 참입니다.

 ● -r FILE: FILE이 존재하고 읽을 수 있으면 참입니다.

 ● -S FILE: FILE이 존재하고 소켓이면 참입니다.

 ● -s FILE: FILE이 존재하고 크기가 0이 아닌 경우 참입니다.

 ● -u 파일: 존재하고 set-user-id(suid) 플래그가 설정되어 있으면 참입니다.

 ● -w FILE: FILE이 존재하고 쓰기 가능하면 참입니다.

 ● -x FILE: FILE이 존재하고 실행 가능하면 참입니다.

파일이 있는지 확인하는 방법은 무엇인가요?

파일이 있는지 확인할 때 가장 일반적으로 사용되는 FILE 연산자는 -e와 -f입니다. 첫 번째 연산자는 파일 유형에 관계없이 파일이 존재하는지 확인합니다. 두 번째 연산자는 파일이 일반 파일(디렉토리나 장치가 아님)인 경우에만 true를 반환합니다.

파일이 있는지 확인할 때 가장 읽기 쉬운 옵션은 if 문과 함께 test 명령을 사용하는 것입니다. 다음 스니펫은 /etc/resolv.conf 파일이 있는지 확인합니다.

FILE=/etc/resolv.conf
if test -f "$FILE"; then
    echo "$FILE exist"
fi
FILE=/etc/resolv.conf
if [ -f "$FILE" ]; then
    echo "$FILE exist"
fi
FILE=/etc/resolv.conf
if [[ -f "$FILE" ]]; then
    echo "$FILE exist"
fi

파일 존재 여부에 따라 다른 작업을 수행하려면 if/then 구조를 사용하세요.

FILE=/etc/resolv.conf
if [ -f "$FILE" ]; then
    echo "$FILE exist"
else 
    echo "$FILE does not exist"
fi

참고: 핸들 이름에 문제를 방지하려면 파일에 공백이 포함된 경우 항상 큰따옴표를 사용하십시오.

if 문 없이 테스트 명령을 사용할 수도 있습니다. && 연산자 뒤의 명령은 테스트 명령의 종료 상태가 true인 경우에만 실행됩니다.

test -f /etc/resolv.conf && echo "$FILE exist"
[ -f /etc/resolv.conf ] && echo "$FILE exist"
[[ -f /etc/resolv.conf ] && echo "$FILE exist"

&& 연산자 뒤에 일련의 명령을 실행하려면 명령을 ";" 또는 "&&"로 묶으세요. 중괄호로 구분됩니다.

[ -f /etc/resolv.conf ] && { echo "$FILE exist"; cp "$FILE" /tmp/; }

&와 달리 || 연산자 뒤에 오는 명령문은 테스트 명령의 종료 상태가 false인 경우에만 실행됩니다.

[ -f /etc/resolv.conf ] && echo "$FILE exist" || echo "$FILE does not exist"

디렉토리가 있는지 확인하는 방법은 무엇인가요?

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

예를 들어 /etc/docker 디렉토리가 있는지 확인하려면 다음을 사용해야 합니다.

FILE=/etc/docker
if [ -d "$FILE" ]; then
    echo "$FILE is a directory"
fi
[ -d /etc/docker ] && echo "$FILE is a directory"

마찬가지로 단일 괄호 [[ 대신 이중 괄호 [[를 사용할 수도 있습니다.

파일이 존재하지 않는지 어떻게 확인하나요?

다른 많은 언어와 유사하게 작동합니다! (느낌표) 테스트 표현식을 부정하는 논리적 NOT 연산자:

FILE=/etc/docker
if [ ! -f "$FILE" ]; then
    echo "$FILE exist and it is a directory"
fi

위와 동일:

[ ! -f /etc/docker ] || echo "$FILE does not exist"

파일이 여러 개 있는지 확인하는 방법은 무엇입니까?

여러 파일이 있는 경우 복잡한 중첩 if/else 구문을 사용하는 대신 -a(또는 &&with[])를 사용하여 테스트할 수 있습니다.

FILE=/etc/docker
if [ -f /etc/resolv.conf -a -f /etc/hosts ]; then
    echo "$FILE is a directory"
fi
FILE=/etc/docker
if [ -f /etc/resolv.conf && -f /etc/hosts ]; then
    echo "$FILE is a directory"
fi

IF 문을 사용하지 않는 동등한 변형:

[ -f /etc/resolv.conf -a -f /etc/hosts ] && echo "both files exist"
[[ -f /etc/resolv.conf && -f /etc/hosts ]] && echo "both files exist"

권장 비디오 튜토리얼: "Linux Tutorial"

위 내용은 이 글의 전체 내용입니다. 모든 사람의 학습에 도움이 되기를 바랍니다. 더 흥미로운 내용을 보려면 PHP 중국어 웹사이트의 관련 튜토리얼 열을 주의 깊게 살펴보세요! ! !

위 내용은 Bash에 파일이나 디렉터리가 있는지 확인하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
Linux 작업 : 유지 보수 모드 사용Linux 작업 : 유지 보수 모드 사용Apr 19, 2025 am 12:08 AM

Linux 유지 관리 모드는 Grub 메뉴를 통해 입력 할 수 있습니다. 특정 단계는 다음과 같습니다. 1) Grub 메뉴에서 커널을 선택하고 'e'를 눌러 편집, 2) 'Linux'라인 끝에 '단일'또는 '1'추가, 3) Ctrl X를 눌러 시작합니다. 유지 보수 모드는 시스템 수리, 비밀번호 재설정 및 시스템 업그레이드와 같은 작업을위한 안전한 환경을 제공합니다.

Linux : 복구 모드에 들어가는 방법 (및 유지 보수)Linux : 복구 모드에 들어가는 방법 (및 유지 보수)Apr 18, 2025 am 12:05 AM

Linux 복구 모드를 입력하는 단계는 다음과 같습니다. 1. 시스템을 다시 시작하고 특정 키를 눌러 Grub 메뉴를 입력하십시오. 2. (복구 계)로 옵션을 선택하십시오. 3. FSCK 또는 루트와 같은 복구 모드 메뉴에서 작업을 선택하십시오. 복구 모드를 사용하면 단일 사용자 모드에서 시스템을 시작하고 파일 시스템 검사 및 수리를 수행하고 구성 파일 편집 및 기타 작업을 수행하여 시스템 문제를 해결할 수 있습니다.

Linux의 필수 구성 요소 : 초보자를위한 설명Linux의 필수 구성 요소 : 초보자를위한 설명Apr 17, 2025 am 12:08 AM

Linux의 핵심 구성 요소에는 커널, 파일 시스템, 쉘 및 공통 도구가 포함됩니다. 1. 커널은 하드웨어 리소스를 관리하고 기본 서비스를 제공합니다. 2. 파일 시스템은 데이터를 구성하고 저장합니다. 3. Shell은 사용자가 시스템과 상호 작용할 수있는 인터페이스입니다. 4. 일반적인 도구는 일상적인 작업을 완료하는 데 도움이됩니다.

Linux : 기본 구조를 살펴 봅니다Linux : 기본 구조를 살펴 봅니다Apr 16, 2025 am 12:01 AM

Linux의 기본 구조에는 커널, 파일 시스템 및 쉘이 포함됩니다. 1) 커널 관리 하드웨어 리소스 및 UNAME-R을 사용하여 버전을보십시오. 2) Ext4 파일 시스템은 큰 파일과 로그를 지원하며 mkfs.ext4를 사용하여 생성됩니다. 3) Shell은 Bash와 같은 명령 줄 상호 작용을 제공하고 LS-L을 사용하는 파일을 나열합니다.

Linux 운영 : 시스템 관리 및 유지 보수Linux 운영 : 시스템 관리 및 유지 보수Apr 15, 2025 am 12:10 AM

Linux 시스템 관리 및 유지 보수의 주요 단계에는 다음이 포함됩니다. 1) 파일 시스템 구조 및 사용자 관리와 같은 기본 지식을 마스터합니다. 2) 시스템 모니터링 및 리소스 관리를 수행하고 Top, HTOP 및 기타 도구를 사용하십시오. 3) 시스템 로그를 사용하여 문제를 해결하고 JournalCTL 및 기타 도구를 사용하십시오. 4) 자동 스크립트 및 작업 스케줄링을 작성하고 CRON 도구를 사용하십시오. 5) 보안 관리 및 보호 구현, iptables를 통해 방화벽을 구성합니다. 6) 성능 최적화 및 모범 사례를 수행하고 커널 매개 변수를 조정하며 좋은 습관을 개발하십시오.

Linux의 유지 관리 모드 이해 : 필수 요소Linux의 유지 관리 모드 이해 : 필수 요소Apr 14, 2025 am 12:04 AM

시작시 init =/bin/bash 또는 단일 매개 변수를 추가하여 Linux 유지 관리 모드가 입력됩니다. 1. 유지 보수 모드를 입력하십시오 : 그루브 메뉴를 편집하고 시작 매개 변수를 추가하십시오. 2. 파일 시스템을 다시 마운트하여 읽고 쓰기 모드 : MOUNT-OREMOUNT, RW/. 3. 파일 시스템 수리 : FSCK/DEV/SDA1과 같은 FSCK 명령을 사용하십시오. 4. 데이터 손실을 피하기 위해 데이터를 백업하고주의해서 작동합니다.

Debian이 Hadoop 데이터 처리 속도를 향상시키는 방법Debian이 Hadoop 데이터 처리 속도를 향상시키는 방법Apr 13, 2025 am 11:54 AM

이 기사에서는 데비안 시스템에서 Hadoop 데이터 처리 효율성을 향상시키는 방법에 대해 설명합니다. 최적화 전략에는 하드웨어 업그레이드, 운영 체제 매개 변수 조정, Hadoop 구성 수정 및 효율적인 알고리즘 및 도구 사용이 포함됩니다. 1. 하드웨어 리소스 강화는 모든 노드에 일관된 하드웨어 구성, 특히 CPU, 메모리 및 네트워크 장비 성능에주의를 기울일 수 있도록합니다. 전반적인 처리 속도를 향상시키기 위해서는 고성능 하드웨어 구성 요소를 선택하는 것이 필수적입니다. 2. 운영 체제 조정 파일 설명 자 및 네트워크 연결 : /etc/security/limits.conf 파일을 수정하여 파일 설명자의 상한을 늘리고 동시에 시스템에 의해 열 수 있습니다. JVM 매개 변수 조정 : Hadoop-env.sh 파일에서 조정

데비안 syslog를 배우는 방법데비안 syslog를 배우는 방법Apr 13, 2025 am 11:51 AM

이 안내서는 데비안 시스템에서 syslog를 사용하는 방법을 배우도록 안내합니다. Syslog는 로깅 시스템 및 응용 프로그램 로그 메시지를위한 Linux 시스템의 핵심 서비스입니다. 관리자가 시스템 활동을 모니터링하고 분석하여 문제를 신속하게 식별하고 해결하는 데 도움이됩니다. 1. syslog에 대한 기본 지식 syslog의 핵심 기능에는 다음이 포함됩니다. 로그 메시지 중앙 수집 및 관리; 다중 로그 출력 형식 및 대상 위치 (예 : 파일 또는 네트워크) 지원; 실시간 로그보기 및 필터링 기능 제공. 2. Syslog 설치 및 구성 (RSYSLOG 사용) Debian 시스템은 기본적으로 RSYSLOG를 사용합니다. 다음 명령으로 설치할 수 있습니다 : sudoaptupdatesud

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

mPDF

mPDF

mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

SublimeText3 영어 버전

SublimeText3 영어 버전

권장 사항: Win 버전, 코드 프롬프트 지원!

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

Dreamweaver Mac版

Dreamweaver Mac版

시각적 웹 개발 도구

VSCode Windows 64비트 다운로드

VSCode Windows 64비트 다운로드

Microsoft에서 출시한 강력한 무료 IDE 편집기