2017-03-03 3 views
-1

정확하게 달성하려는 내용은 제목보다 훨씬 복잡하지만 합리적으로 짧게 유지하려고합니다. 나는 다음을 시도하고있다. (나는 여전히 bash를 처음 접했습니다.)한 디렉터리에서 다른 디렉터리로 파일 복사

"이름이 XXX와 같이 인수로 주어지며 이름이 다른 인수로 주어진 다른 디렉토리를 생성하는 이미지 디렉토리를 가져옵니다. 그 이미지의 복사본은 크기의 절반 (선형 치수)입니다. "

다음 스크립트를 사용하여이 작업을 시도했습니다.

#!/bin/bash 

if [ "$1" != "" ]; then  
    orgdir$1 
fi 
if [ "$2" != "" ]; then  
    cpydir=$2  
fi  
find "${orgdir}" | while read -r file 
do  
    filesize=$(wc -c <"$orgdir$file") 
    dd if=$orgdir of=$cpydir bs=$(($filesize/2)) 
done 

터미널에서이를 ./script.sh ./Test//TestMove로 실행하면 다음 오류가 발생합니다.

line 11 ./Test./Test: No such file or directory. 

난 그냥 $ 파일의 화장실 -c를 받고 시도했지만 그 화장실은 표준 입력

과 같은 디렉토리를 취 말한다;

line 12 ""/2: syntax error: operand expected (error token is """/2") 

아마도 파일 크기에 올바른 값이 지정되지 않았기 때문입니까?

또한 파일을 복사하는 데 dd를 사용하고 크기를 절반으로 줄이는 것이 가장 좋은 방법이지만 다른 파일을 찾을 수는 없습니다.

+1

이미지 파일의 절반 바이트를 복사 아마 올바른 이미지 발생하지 않을 . – chepner

+0

그래, 내가 그 일을 처음 읽을 때 생각했다. 솔직히 말해서 반을 복사하거나 압축하려고하는지 확신 할 수 없습니다. 후자가 가능합니까? – Chaz

+1

문자 그대로 "300x300 이미지를 150x150 이미지로 변환"을 의미하는 경우 파일 형식을 이해하는 프로그램을 사용해야합니다. – chepner

답변

1

당신은 대부분의 리눅스 배포판에 설치되어있는 ImageMagick를 스위트에서 하나의 명령으로 그렇게 할 수 있습니다

cd "$1" && mogrify -path "$2" -resize 50% *.jpg 
관련 문제