![如何使用 unix cp 命令从不同目录复制(或移动)并重命名多个文件?](https://linux22.com/image/1563392/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%20unix%20cp%20%E5%91%BD%E4%BB%A4%E4%BB%8E%E4%B8%8D%E5%90%8C%E7%9B%AE%E5%BD%95%E5%A4%8D%E5%88%B6%EF%BC%88%E6%88%96%E7%A7%BB%E5%8A%A8%EF%BC%89%E5%B9%B6%E9%87%8D%E5%91%BD%E5%90%8D%E5%A4%9A%E4%B8%AA%E6%96%87%E4%BB%B6%EF%BC%9F.png)
假设在这个目录下:
/home/data/
共有 100 个文件夹,这些文件夹的名称分别为24538_7#1
、24538_7#2
、24538_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
可能会奏效