터미널에서 다른 파일에 대해 명령을 여러 번 반복하려면 어떻게해야합니까?


13

터미널에서 ffmpeg2theora를 사용하여 특정 디렉토리의 모든 .MOV 파일을 .ogv 파일로 변환하려고합니다. 그러나 다음은 작동하지 않습니다.

ffmpeg2theora *.MOV

다른 파일에서 명령을 여러 번 반복하는 좋은 방법이 있습니까?

감사!

답변:


20

기본 셸 (bash)을 사용하면 다음을 사용할 수 있습니다.

for file in *.MOV; do ffmpeg2theora "$file"; done

5
이것은 슬래시 없이도 잘 작동합니다.for file in *.[Mm][Oo][Vv]; do ffmpeg2theora "$file"; done
frabjous

예, 당신은 절대적으로 맞습니다. 나는 내 대답을 수정했습니다.
Marcel Stimberg

1
nocaseglobbash 옵션을 대문자, 대소 문자가 혼합 된 파일 확장자와 일치하도록 설정할 수도 있습니다 .
enzotib

감사합니다! 나는 bash를 전에 사용한 적이 없지만 실제로 유용합니다. (나를 배울 시간이다!)
Alan C

11

find . -iname '*.mov' -exec ffmpeg2theora '{}' \;

재귀 깊이를 제한 -maxdepth 1하기 위해 이전에 추가 할 수 있습니다-exec


2
이 답변과 내 답변의 차이점을 설명하기 위해 find를 사용하면 하위 디렉토리의 파일도 찾고 for file in *.MOV솔루션은 현재 디렉토리에서만 찾습니다.
Marcel Stimberg
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.