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」の周りに引用符を追加します。

おすすめ記事