2013-05-20 3 views
6

file 명령으로 파일 유형을 식별 할 수 있습니다. 파일의 기본 (선호) 확장자를 얻을 수 있습니까?기본/선호 파일 확장자 가져 오기

tmp_206.file: GIF image data, version 89a, 17 x 17 
tmp_202.file: ASCII text, with very long lines, with no line terminators 

에 대한 예를 들어

.gif.txt 내가 확장 UNIX 문제가되지 않습니다 알고

이 될 것입니다,하지만 그들은 중요합니까 저

+3

mimleType=$(awk -F';' 'NF>1{print $1}' < <(file -bi logo.jpeg)) 

그런 다음 파일 확장자를 얻기 위해이 AWK를 사용 할 수있는 일

사용하여 첫 번째 MIME 타입을 얻을 수 있습니다 기본 확장과 같은 것은 없습니다. 그러나 : HTTP 서버는 확장을 MIME 유형에 매핑하려고합니다. [해당 확장을 선택하기 위해 해당 매핑을 다시 사용할 수 있습니다.] (http://stackoverflow.com/questions/7609208/complete-list-of-mime-type-file-extension-mapping). –

+2

당신은'file --mime-type '를 사용하여 MIME 형식을 얻을 수 있습니다. –

+0

@Banthar 네 말이 맞아요, 내가 깨닫고 나서 제 의견을 삭제했습니다 :) – robertklep

답변

0

당신은 합리적으로 제한된이있는 경우 확장자가 file에서 원하는 확장자로 매핑되는 것은 어렵지 않습니다.

case $(file - <"$file") in 
    '-: GIF image'*) ext=gif ;; 
    '-: ASCII text'*) ext=txt ;; 
    # etc 
esac 
2

일부 파일 유형은 jpeg 파일의 경우 jpe, jpeg, jpg 등 1 개 이상의 확장자를 지원합니다.

awk -v mt=$mimeType '$1==mt{print $2}' /Applications/MAMP/conf/apache/mime.types 

OUTPUT :이

jpeg 
관련 문제