여러 파일에 확장자를 추가하는 것에 대해 많은 질문이 있다는 것을 알고 있습니다. 하지만 그들 중 누구도 내 일을 할 수 없습니다.
확장자가 없는 거대한 이미지 목록이 있습니다. 대부분은 png이지만 jpg 파일도 있고 tiff도 있을 수 있습니다.
이름을 올바르게 바꾸려면 어떻게 해야 합니까?
답변1
어쩌면 다음과 같은 것일 수도 있습니다.
for f in /some/dir/*; do
type="$( file -bi -- "$f" )"
case "${type%%;*}" in
image/jpeg) ext=jpg ;;
image/png) ext=png ;;
image/tiff) ext=tiff ;;
*) printf '%s: %s: unknown file type\n' "${0##*/}" "$f" >&2; ext='' ;;
esac
if [ -n "$ext" ]; then mv -n -- "$f" "${f}.${ext}"; fi
done
답변2
또 다른 방법 exiftool
:
exiftool -r -ext '' '-filename<$filename.$filetype' .
그러면 현재 디렉터리에서 확장자가 없는 모든 이미지 파일의 이름이 , 등으로 재귀적으로 r
변경 됩니다..
filename.TYPE
TYPE
JPEG
PNG
TIFF
또는 확장자가 없는 JPEG/PNG/TIFF 유형 파일만 이름을 바꿉니다.
exiftool -if '$filetype eq "JPEG"' -filename=%f.jpg \
-execute -if '$filetype eq "PNG"' -filename=%f.png \
-execute -if '$filetype eq "TIFF"' -filename=%f.tiff \
-common_args -r -ext '' .
답변3
이것이 귀하의 질문에 대한 답변인지 확실하지 않지만 어떤 이미지 유형(PNG, JPEG 등)이 특정 파일인지 알고 싶다면 다음 명령을 사용할 수 있습니다 file
.
file myimage.xxx
myimage.xxx: PNG image data, 837 x 814, 8-bit/color RGB, non-interlaced