別のディレクトリから別の名前のファイルをコピーします。

別のディレクトリから別の名前のファイルをコピーします。

別のディレクトリにある名前が異なる複数のファイルを同じ新しいディレクトリにコピーしようとしています。ディレクトリ名は各ファイル名の先頭と同じです。たとえば、ディレクトリからファイルをディレクトリに/mnt/data/files/xyzコピーしたいとします。ディレクトリからファイルをディレクトリにコピーしたいです。xyz_5/mnt/data/myname/new/mnt/data/files/abcabc_7/mnt/data/myname/new

これを行うために必要なファイルは60個あります。今どうすればいいですか?

cd /mnt/data/files/xyz;
cp -v *_5 /mnt/data/myname/new

すべてのファイルに対してこれを行います。しかし、コードでこれを行うことはできますか?

答え1

質問はあまり明確ではありませんが、たぶんあなたがしたいかもしれません

cp -v /mnt/data/files/xyz/*_5 /mnt/data/files/abc/*_7 /mnt/data/myname/new/

答え2

単純な for ループがアクションを実行します。

for i in /mnt/data/files/*; do
  [ -d "$i" ] && cp -v "${i}/${i}_5" /mnt/data/myname/new/
done

forループはディレクトリの内容を繰り返します/mnt/data/files/。ループ内で[ -d "$i" ]エントリがディレクトリであることを確認してください。その場合は、同じ名前で_5ディレクトリで終わるファイルをターゲットディレクトリにコピーします/mnt/data/myname/new/

関連情報