슬림쉐이디
25
2021-09-15 17:47:47 작성 2021-09-15 17:59:04 수정됨
2
99

리눅스에서 파일변환하는데 명령어 질문좀 드리겠습니다.


.png 파일들을 전부 webp로 바꿔주려는데요


cwebp [options] input_file -o output_file.webp

cwebp -q 90 aaa.png -o aaa.webp

이런식으로하면 webp로 바뀌는데

find ./ -name '*.png' -exec cwebp -q 90 {} -o {}.webp \;


이렇게 해주면 파일들이 aaa.png.webp 이렇게 나오더라구요


{}가 aaa.png이라 그런것같은데 이부분을 어떻게 해야 할지 잘 모르겠습니다.


1
  • 답변 2

  • 신히
    817
    2021-09-16 07:59:47 작성 2021-09-16 07:59:58 수정됨

    한방 명령으로는 힘들거 같고요, 아래와 같이 확장자를 제거 해보세요.

    for filename in `find . -name '*.png'`
    do
        cwebp -q 90 $filename -o $(echo $filename | sed -e s/.png//).webp
    done


    🚀 코드 테스트 해보기

  • 카스마당
    1k
    2021-09-16 17:16:09 작성 2021-09-16 17:17:26 수정됨
    find ./ -name "*.png" | xargs -P 8 -I {} sh -c 'cwebp -q 90 $1 -o "${1%.png}.webp"' _ {} \;
    
    find ./ -name "*.png" | parallel -eta cwebp -q 90 {} -o {.}.webp

    yum install parallel 설치하시면 편하겠네요.

  • 로그인을 하시면 답변을 등록할 수 있습니다.