두 파일 중 하나 또는 둘 다 존재하는지 확인하는 방법은 무엇입니까?

두 파일 중 하나 또는 둘 다 존재하는지 확인하는 방법은 무엇입니까?

쉘 스크립트를 체크인하는 방법어느두 개의 파일이 존재합니까?

이 파일 중 어느 파일이 존재하는지 또는 둘 다 존재하는지는 중요하지 않습니다.

답변1

다른 두 답변은 모두 test두 번 실행됩니다. 이것이 작동하는 동안 두 프로세스 분기의 비효율성으로 인해 어려움을 겪습니다. 다음을 사용하여 단일 테스트에서 OR을 수행할 수 있습니다.

if [ -e file1 -o -e file2 ]; then ...

이것이 약간 더 효율적일 것입니다.

답변2

if test -e file1 || test -e file2; then
  # At least one of file1 or file2 exists
  ...
else
  # Neither file1 nor file2 exists
fi

test -e존재하는지 확인하십시오. -b(존재하고 특수 블록임), -c(존재하고 특수 문자임), -d(존재하고 디렉토리임), -f(존재하고 일반 파일임) 등과 같은 보다 구체적인 테스트를 원할 수도 있습니다.

답변3

/bin/test맨페이지에 이름이 나와 있지 않더라도 test이를 사용하여 test -a /path/to/file파일이 존재하는지 확인할 수 있습니다.

if [ -a file1 ] || [ -a file2 ]; then echo "I found something"; fi

||실제로는 논리적 "OR"입니다.

관련 정보