
수천 개의 이미지 파일(주로 JPG이지만 일부는 PNG)이 있는 디렉토리가 있습니다. 파일에는 확장자가 없으며 번호만 매겨져 있습니다. 모두 JPG로 변환해야 합니다.
사용찾다유형이 포함된 모든 파일 목록을 얻을 수 있으며, 여기에서 Imagemagick을 사용하여 유형을 지정하여 PNG에서 JPG로 변환할 수 있습니다.
convert png:10020 jpg:10020.jpg
하지만 저는 이 작업을 모든 파일에 걸쳐 일괄 처리로 수행하고 싶습니다. 출력을 어떻게 파이프할 수 있습니까?찾다모든 PNG 파일을 JPG로 변환하시겠습니까?
답변1
find . -type f | while read IN; do
if [ "x$(file -b --mime-type $IN)" = "ximage/png" ]; then
convert png:$IN jpg:$IN.jpg;
fi;
done;
인수의 의미:
.
현재 디렉토리에서 찾기-type f
디렉토리/소켓/등이 아닌 파일을 찾으십시오.while read IN; do
각 파일 이름을 변수에 넣고IN
루프를 실행합니다.if [ "x$(file -b --mime-type $IN)" = "ximage/png" ]; then
파일이 PNG인지 확인하세요.convert png:$IN jpg:$IN.jpg;
...그렇다면 변환하세요.fi; done;
이제 끝났습니다!
이번에 테스트했는데 확장자가 없이 PNG로 가득 찬 디렉토리를 .png
JPG로 변환하는 기능이 작동합니다.