7zip 및 Bash 스크립트에서 공백이 있는 파일 이동

7zip 및 Bash 스크립트에서 공백이 있는 파일 이동

7zip을 시도하고 다음과 같은 일부 파일을 이동하고 있습니다.

./[1998] - This year's book.pdf ##괄호, 공백, 아포스트로피에 주의하세요

내 스크립트는 다음과 같습니다

for file in `ls ./unprocessed/*.pdf`; 
do 
    7z a -mx=0 -pMyPassword $file.7z $file ;
    mv $file ./processed 
done

(차이가 있다면 실제로 Synology의 Linux에 있습니다.)

"$file" 주위에 따옴표를 추가하려고 시도했지만 두 줄 모두 도움이 되지 않았습니다.

복잡한 grep이나 sed 유형의 작업 없이 이 작업을 수행할 수 있기를 바랍니다.

내가 겪고 있는 주요 오류는 공백으로 인해 파일 이름을 분할하려고 시도하고 "[1998]" 등을 찾을 수 없기 때문에 겁이 난다는 것입니다.

공간이나 펑키한 캐릭터 문제(?)만 정리하면 7z도 괜찮을 것 같아요.

다른 사람이 이런 일을 겪은 적이 있습니까?

어떤 제안이라도 보내주셔서 감사합니다!

답변1

shellcheck.net을 방문해 주셔서 감사합니다. 저는 익숙하지 않습니다. 핵심 문제는 다음 줄입니다.

`ls ./unprocessed/*.pdf`

이것이 더 좋습니다:

for file in ./unprocessed/*.pdf

그런 다음 "$file" 주위에 따옴표를 추가하세요.

관련 정보