Как перемещать файлы с тем же именем и объединяться

Ниже приведена структура каталогов. Мне нужно переместить все папки из Test3 в Test2 и объединить файлы с одинаковыми именами

[jg@hpc Test2]$ tree . |-- Sample_1008 | |-- 1008_ATCACG_L002_R1_001.fastq | |-- 1008_ATCACG_L002_R2_001.fastq | |-- 1008_ATCACG_L006_R1_001.fastq | `-- 1008_ATCACG_L006_R2_001.fastq `-- Sample_1009 |-- 1009_CGATGT_L002_R1_001.fastq |-- 1009_CGATGT_L002_R2_001.fastq |-- 1009_CGATGT_L006_R1_001.fastq `-- 1009_CGATGT_L006_R2_001.fastq [jg@hpc Test3]$ tree . |-- Sample_1008 | |-- 1008_ATCACG_L002_R1_001.fastq | |-- 1008_ATCACG_L002_R2_001.fastq | |-- 1008_ATCACG_L006_R1_001.fastq | `-- 1008_ATCACG_L006_R2_001.fastq `-- Sample_1009 |-- 1009_CGATGT_L002_R1_001.fastq |-- 1009_CGATGT_L002_R2_001.fastq |-- 1009_CGATGT_L006_R1_001.fastq `-- 1009_CGATGT_L006_R2_001.fastq 

Я пытался

 mv Test3/* /auto/dr-lc_sa1/Data/Test2 

ничего не сработало, но когда я попробовал

 cp -r Test3/* Test2/ 

Он перезаписывается.

Я хочу, чтобы файлы были объединены. В конце мне нужно иметь один каталог Test2 и под каждым образцом, а их файлы fastq в каталоге Test3 будут объединены в соответствующие файлы fastq в каталоге Test2.

Нет встроенного способа конкатенации файла и его удаления, вам придется разбить его на два шага.

В zsh или в bash ≥4 после запуска shopt -s globstar или в ksh после запуска set -o globstar :

 cd Test3 for x in **/*.fastq; do cat "$x" >>"/auto/dr-lc_sa1/Data/Test2/$x" && rm "$x" done 

Без ** для возврата в подкаталоги используйте find .

 cd Test3 find . -name '*.fastq' -exec sh -c 'cat "$0" >>"/auto/dr-lc_sa1/Data/Test2/$0" && rm "$0"' {} \; 

Если Test2 и Test3 находятся в одной и той же файловой системе, и в Test3 есть много файлов, у которых нет соответствующего файла в месте назначения, вы можете сохранить некоторое время выполнения, перемещая файл, а не конкатенировать его в пустой файл:

 for x in **/*.fastq; do if [ -s "../Test2/$x" ]; then cat "$x" >>"/auto/dr-lc_sa1/Data/Test2/$x" && rm "$x" else mv "$x" "/auto/dr-lc_sa1/Data/Test2/$x" fi done