我也有同样的问题,之前有人问过 -
我想将同名但位于不同文件夹中的文件复制到新目录中。问题是不要在新目录中覆盖它们。
例如,我想复制最终的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