/opt/dir/ABC/
には複数のファイルがあり、allfile_123-abc allfile_123-def allfile_123-ghi allfile_123-xxx
という名前が付けられています。bashを使って複数のファイルをディレクトリに移動するにはどうしたらよいですか?
は、私はファイルを私は上記$file = /opt/dir/ABC/allfile_123*
ので動作しません知っているnew_name-abc.pgp new_name-def.pgp new_name-ghi.pgp new_name-xxx.pgp
を命名して、/usr/tst/output
for file in /opt/dir/ABC/allfile_123* ;
do mv $file /usr/tst/output/"$file.pgp";
rename allfile_123 new_name /usr/tst/output/*.pgp ; done
に移動する必要があります。この作業を行うことは可能ですか、それとも 'for loop'ではなく別のコマンドですか?
これは、jilにbashを実行しているLinuxサーバーのコマンドラインに渡すコマンドが含まれているAutosysアプリケーション用です。
私の質問の各部分のバージョンを見つけることができましたが、それだけではありませんでした。私はこのjilのコマンドラインに残したいと考えていました。スクリプトが絶対必要でない限り。
あなたが言います'/ opt/dir/ABC/allfile_123 *'は動作しません。 globパターンが正確であれば動作します。 '' $ file "'を参照する際には、 '' $ file "" /usr/tst/output/$file.pgp "'のように二重引用符を使用するべきですが、それはあなたの直ぐの問題ではありません。あなたは何をスクリプトに渡していますか? –
私はスクリプトに何も渡していません。これはすべてコマンドライン上にあります。私が受け取っているエラーは 'mv:'/opt/dir/ABC/allfile_123-abc 'を '/usr/tst/output//opt/dir/ABC/allfile_123-abc.pgp'に移動できません:そのようなファイルはありませんファイル名が$ file "であれば、ファイル名は" $ file "になります。" – Emile
'mv" $ file "/ usr/tst/output/new_name" $ {file#allfile_123} ".pgpは動作するはずです –