如何使用 unix cp 命令从不同目录复制(或移动)并重命名多个文件?

如何使用 unix cp 命令从不同目录复制(或移动)并重命名多个文件?

假设在这个目录下: /home/data/

共有 100 个文件夹,这些文件夹的名称分别为24538_7#124538_7#224538_7#3... 至24538_7#384

每个文件夹中都有许多文件和文件夹。

每个文件夹中所需文件的名称为 Aligned.out.sam 重命名文件所需的文件夹为/home/SAM

我怎样才能将所有这些文件复制到新文件夹(/home/SAM)并将它们正确重命名为24538_7#1.sam,,24538_7#2.sam...... 24538_7#3.sam

我尝试使用下面的命令来执行此操作,但没有效果:

mv /home/data/*/Aligned.out.sam /home/SAM/*.sam

答案1

类似于

for sam in */Aligned.out.sam; do \
  name=$(basename $(dirname "$sam")) \
  cp "$sam" "/home/SAM/$name.sam" \
done

可能会奏效

相关内容