假设在这个目录下:
/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
可能会奏效