複数のファイルを移動し、.pgp拡張子を追加するには?

複数のファイルを移動し、.pgp拡張子を追加するには?

私のディレクトリには4つのファイルがあり、mvコマンドはすべてのファイルを移動せずに.pgp拡張子を追加します。

スクリプトを書くのではなく、コマンドラインに保存したいと思います。おそらく私がここ/ Googleで間違った質問をしているようです。

4つのファイルは次の場所にあります/test/test-1 test-2 test-3 test-4

これを試しましたが、mv /test/test* /test/dir/*.pgp*.pgpがディレクトリではないため動作しません。

ループを使用してこれを行う唯一の方法ですか?また、forループでなければなりませんか?私はシェルスクリプトに初めて触れていて、あまり自信がありません...

答え1

まずファイル名を変更してから移動できます。

rename 's/(.*)/$1.pgp/' test*; mv test*.pgp /test/dir

答え2

唯一の方法ではありませんが、最良かつ簡単な方法は実際にはループ、好ましくはforループです。これを行う方法は簡単です。

cd /test    
for file in test*; do
    mv "$file" /test/dir/"$file".pgp
done

それはすべてです。

答え3

はい、ループ、forループを使用する必要があります。

簡単な2つのステップを踏むだけです。

set -- test-{1..4}
for f; do mv "$f" "dir/$f.pgp"; done

関連情報