매직 파일로 파일 유형을 감지하고 그에 따라 파일 접미사의 이름을 바꿉니다.

매직 파일로 파일 유형을 감지하고 그에 따라 파일 접미사의 이름을 바꿉니다.

접미사 없이 다양한 파일이 포함된 폴더(iPhone 백업)가 있습니다.

매직 파일 데이터베이스(/usr/share/기타/매직또는사람 파일), 그에 따라 파일 접미사를 자동으로 변경/이름을 바꿉니다(데이터베이스 파일 /mime-type <->접미사에서).

"파일", "마법", "이름 바꾸기" 등 관련된 키워드의 일반적인 특성으로 인해 몇 시간 동안 Google 및 StackExchange를 검색해도 결과가 나오지 않았습니다. 도와 주셔서 감사합니다!

답변1

유형<-> 접미사 DB는 어떤 모양인가요? 해석된 file출력은 그렇게 간단하지 않습니다. 나는 방금 가정했습니다: * 첫 번째 단어 파일 인쇄이면 충분합니다. * 단어는 각 줄에 다음이 포함된 파일의 키이고 값은 우리가 원하는 접미사입니다.

Bash의 경우 파일 형식을 매개 변수로 사용하고 접미사를 에코하는 함수를 작성합니다.

MISTERIOUSFILEMIMETYPETOSUFFIXDB=/path/to/key/value/file

typetosuffix () {
    grep -E "^\s*$1:" ${MISTERIOUSFILEMIMETYPETOSUFFIXDB}| cut -d : -f 2
}

이 기능을 사용하면 다음을 수행할 수 있습니다.

for f in $(find /path/to/iphone/backup -type -f)
do
    FILEWITHOUTSUFFIX = basename $f
    [ ${FILEWITHOUTSUFFIX} = ${FILEWITHOUTSUFFIX%.*} ] && continue #the file has a suffix after all
    TYPE=$(file $f | cut -f 2) #put type determining magic here
    SUFFIXITSSUPPOSEDTOHAVE=$(typetosuffix $TYPE) #fetch suffix from DB
    mv $f $f$SUFFIXITSSUPPOSEDTOHAVE #rename the file
done

관련 정보