스크립트에서 파일 형식을 확인하는 방법

스크립트에서 파일 형식을 확인하는 방법

디렉토리의 모든 이미지를 반복하고 싶습니다. 이미지에는 확장자가 없으므로 해당 유형을 알기 위해서는 이미지의 첫 번째 바이트를 읽어야 합니다. 루프는 다음과 같이 나타나야 합니다.

for file in *
do
    if [ file --mime-type -b ]
    then
        ***
    fi
done

답변1

case문을 사용하고명령 대체:

for file in *; do
    case $(file --mime-type -b "$file") in
        image/*g)        ... ;;
        text/plain)      ... ;;
        application/xml) ... ;;
        application/zip) ... ;;
        *)               ... ;;
    esac
done

확인하다:
http://mywiki.wooledge.org/BashFAQ/002
http://mywiki.wooledge.org/CommandSubstitution
http://mywiki.wooledge.org/BashGuide/TestsAndConditionals#Choices
http://wiki.bash-hackers.org/syntax/ccmd/case

편집하다

사용하지 않겠다고 주장 case하고 if사용하겠다고 선언하는 경우:

if [[ $(file --mime-type -b "$file") == image/*g ]]; then
...
else
...
fi 

관련 정보