私のディレクトリには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