![매직 파일로 파일 유형을 감지하고 그에 따라 파일 접미사의 이름을 바꿉니다.](https://linux55.com/image/24063/%EB%A7%A4%EC%A7%81%20%ED%8C%8C%EC%9D%BC%EB%A1%9C%20%ED%8C%8C%EC%9D%BC%20%EC%9C%A0%ED%98%95%EC%9D%84%20%EA%B0%90%EC%A7%80%ED%95%98%EA%B3%A0%20%EA%B7%B8%EC%97%90%20%EB%94%B0%EB%9D%BC%20%ED%8C%8C%EC%9D%BC%20%EC%A0%91%EB%AF%B8%EC%82%AC%EC%9D%98%20%EC%9D%B4%EB%A6%84%EC%9D%84%20%EB%B0%94%EA%BF%89%EB%8B%88%EB%8B%A4..png)
접미사 없이 다양한 파일이 포함된 폴더(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