ああ、私はいくつかのページと質問を読んだが、理解できないか完全に理解できない...
jdir0="$@" # /home/tor/subbackup/teest2/jjj
mv "$jdir0/subs/*.srt" /home/tor/subbackup/
mv: '/home/tor/subbackup/teest2/jjj/*.srt' を計算できません。そのファイルやディレクトリはありません。
まあ、ええ、はい、そこにtest2.srtがあります。
私は多くの異なるソリューションを含むいくつかのページを見てきました。
mv /home/tor/subbackup/teest2/jjj/subs/test2.srt /home/tor/subbackup/
これは端末でうまく動作します..
(最初の移動コマンド)しかし、スクリプトで動作させることはできません。私が何を間違っているのでしょうか?
答え1
jdir0="$@"
"$@"
次に展開みんなスクリプトの位置引数/引数。単一の変数に割り当てると、Bash は変数をスペースで連結します。あなたはただ$1
ここにいたいかもしれません。
mv "$jdir0/subs/*.srt"
変数拡張はトークン化を防ぎ、変数にglobのように見える項目が含まれている場合はワイルドカードを防ぐので、実際に引用する必要があります。しかし、ここではおそらくハードコードされたグロブが機能したいと思います。いいえ引用してください。
したがって、引用符の外側にアスタリスクを残してください。
mv "$jdir0"/subs/*.srt
または例えば
mv "$jdir0/subs/"*.srt
どちらも同じように動作するので、より良いと思うバリエーションを使用してください。