![7zip 및 Bash 스크립트에서 공백이 있는 파일 이동](https://linux55.com/image/89852/7zip%20%EB%B0%8F%20Bash%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EC%97%90%EC%84%9C%20%EA%B3%B5%EB%B0%B1%EC%9D%B4%20%EC%9E%88%EB%8A%94%20%ED%8C%8C%EC%9D%BC%20%EC%9D%B4%EB%8F%99.png)
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" 주위에 따옴표를 추가하세요.