bash-复制具有相同名称的多个文件

bash-复制具有相同名称的多个文件

我也有同样的问题,之前有人问过 -

bash - 复制具有相同名称的多个文件

我想将同名但位于不同文件夹中的文件复制到新目录中。问题是不要在新目录中覆盖它们。

例如,我想复制最终的fasta.fna从多个文件夹到另一个文件夹:

    12345A-99-85/assembly/final_fasta.fna

    12345A-99-52/assembly/final_fasta.fna

    12345A-99-81/assembly/final_fasta.fna

如果我这么做-

    cp 12345A-99-*/assembly/final_fasta.fna ~/output_direc/

那么它将覆盖“最终的fasta.fna“ 在里面〜/ output_direc /文件夹

我想要一些类似输出文件夹的内容

   ~/output_direc/12345A-99-85_final_fasta.fna

答案1

$ mkdir -p {12345A-99-85,12345A-99-52,12345A-99-81}/assembly
$ touch {12345A-99-85,12345A-99-52,12345A-99-81}/assembly/final_fasta.fna
$ mkdir ~/output_direc
$ find . -name "final_fasta.fna" -type f -exec sh -c 'cp "$1" ~/output_direc/"$(dirname "$1" | cut -d / -f2)"_final_fasta.fna' sh {} \; 
$ ls -Al ~/output_direc/
total 0
-rw-r--r-- 1 ja users 0 Sep 16 12:12 12345A-99-52_final_fasta.fna
-rw-r--r-- 1 ja users 0 Sep 16 12:12 12345A-99-81_final_fasta.fna
-rw-r--r-- 1 ja users 0 Sep 16 12:12 12345A-99-85_final_fasta.fna

相关内容