Bash Shell을 사용하여 파일이 존재하는지 확인하는 방법

高洛峰
풀어 주다: 2017-01-09 13:48:21
원래의
1329명이 탐색했습니다.

머리말

유닉스 계열 시스템의 Bash 환경에서 파일이 존재하는지 어떻게 확인하는가? 수요가 있기 때문에 물론 해결책도 있습니다. 셸의 테스트 명령을 사용하여 파일 유형을 감지하거나 값이 동일한지 비교하는 데에도 사용할 수 있습니다. 존재합니다.

다음 명령을 사용하여 확인할 수 있습니다.

test -e filename
[ -e filename ]
  
test -f filename
[ -f filename ]
로그인 후 복사

다음 명령은 Shell의 조건식을 사용하여 etc/ 호스트 파일이 존재합니다:

[ -f /etc/hosts ] && echo "Found" || echo "Not found"
로그인 후 복사

이 결합된 명령은 다음을 출력합니다:

Found
로그인 후 복사

더 일반적인 사용법은 if..else..fi 조건판단의 조건식에 테스트 명령어를 넣은 후, 그 안에 다른 분기 로직을 ​​작성하는 것입니다

#!/bin/bash
file="/etc/hosts"
if [ -f "$file" ]
then
 echo "$file found."
else
 echo "$file not found."
fi
로그인 후 복사

파일 속성 감지를 위한 관련 연산자

파일이 존재하고 해당 속성이 있는 경우 다음 연산자는 true를 반환합니다.

-b FILE
  FILE exists and is block special
-c FILE
  FILE exists and is character special
-d FILE
  FILE exists and is a directory
-e FILE
  FILE exists
-f FILE
  FILE exists and is a regular file
-g FILE
  FILE exists and is set-group-ID
-G FILE
  FILE exists and is owned by the effective group ID
-h FILE
  FILE exists and is a symbolic link (same as -L)
-k FILE
  FILE exists and has its sticky bit set
-L FILE
  FILE exists and is a symbolic link (same as -h)
-O FILE
  FILE exists and is owned by the effective user ID
-p FILE
  FILE exists and is a named pipe
-r FILE
  FILE exists and read permission is granted
-s FILE
  FILE exists and has a size greater than zero
-S FILE
  FILE exists and is a socket
-t FD file descriptor FD is opened on a terminal
-u FILE
  FILE exists and its set-user-ID bit is set
-w FILE
  FILE exists and write permission is granted
-x FILE
  FILE exists and execute (or search) permission is granted
로그인 후 복사

위 명령은 man test에서 복사한 것입니다.

위 기호를 사용하는 방법은 완전히 동일합니다:

if [ operator FileName ]
then
  echo "FileName - Found, take some action here"
else
 echo "FileName - Not found, take some action here"
fi
로그인 후 복사

요약

위는 이 글의 전체 내용입니다. 이 글의 내용이 모든 분들의 공부나 업무에 조금이나마 도움이 되기를 바랍니다. 궁금한 점이 있으시면 메시지를 남겨주세요.

Bash Shell을 사용하여 파일 존재 여부를 확인하는 방법에 대한 더 많은 관련 기사를 보려면 PHP 중국어 웹사이트를 주목하세요!


관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿