
convert source_filename.ext1 destination_filename.ext2
zsh를 사용하여 폴더에서 파일을 공급 path_to_source
하고 결과(이름은 같지만다른 확장자) 폴더 path_to_destination
.
나는 find
and 를 사용하여 이것을 달성할 수 있다고 믿지만 xargs
작동하는 것은 아무것도 찾지 못했습니다. 나는 또한 ZSH에 이에 유용한 몇 가지 내장 기능이 있을 것이라고 생각했습니다. 어떤 조언이라도 대단히 감사하겠습니다.
노트:내가 아는 한, convert
일괄 파일을 처리하는 기본 방법이 없으므로 파일을 하나씩 제공해야 합니다. 두 경우 모두 이러한 매개변수를 사용하여 파일별로 명령 파일을 제공하는 문제를 해결하는 데 관심이 있습니다.
답변1
for x in /path/to/source/**/*.ext1; do convert $x ${x:r}.ext2 done
지금 r
은${x:r}
기록 수정자. for
일부 문자를 저장하는 짧은 형식이 있습니다 .
for x (/path/to/source/**/*.ext1) convert $x ${x:r}.ext2
답변2
나는 이렇게 할 것이다:
cd path_to_source
find . | sed 's/.ext1$//' | xargs convert {}.ext1 ../path_to_destination/{}.ext2
답변3
파일을 일괄 처리하고 옵션(시작 위치)을 사용하여 한 형식에서 다른 형식으로 변환하여 mogrify
처리된 이미지를 출력할 다른 디렉터리를 지정할 수 있습니다.-path
imagemagick v6.2.0
mogrify -path /path/to/dest_filename -format ext2 /path/to/source_filename/*.ext1
예를 들어
mogrify -path /home/myjpgs -format jpg /media/images/*.png
동일한 파일 이름을 유지하기 위해 디렉토리 .png
의 모든 이미지를 변환하고 (확장자만 변경됨) 결과 이미지를 다음 위치에 저장합니다./media/images
jpg
/home/myjpgs