假设我想从具有以下文件夹的find /40/AD/GWAS_data/Source_Plink/2021_ADGC_EOAD -name "plink_data*"复制一些文件夹:
/40/AD/GWAS_data/Source_Plink/2021_ADGC_EOAD/ADGC_NHW/ADNI/TOPMEDr2/vcffile/plink_data
/40/AD/GWAS_data/Source_Plink/2021_ADGC_EOAD/ADGC_ASIAN/BIOCARD/TOPMEDr2/vcffile/plink_data进入/40/AD/GWAS_data/Source_Plink/2021_ADGC_EOAD/NEW_DIR/,但我希望新目录具有:
/40/AD/GWAS_data/Source_Plink/2021_ADGC_EOAD/NEW_DIR/ADGC_NHW/ADNI/TOPMEDr2/vcffile/plink_data
/40/AD/GWAS_data/Source_Plink/2021_ADGC_EOAD/NEW_DIR/ADGC_ASIAN/BIOCARD/TOPMEDr2/vcffile/plink_data我试过这样做,但它复制了整个路径:find /40/AD/GWAS_data/Source_Plink/2021_ADGC_EOAD -name "plink_data*" -exec cp --parents {} /target \;
我该怎么做呢?谢谢!
UPDATE:我能够使用@Cyrus的答案使用cp执行任务,但不能使用mv。我认为在这个命令中应用cp和mv没有什么不同,但我错了。事实上,我需要在不同的任务中同时使用mv和cp,所以我使用了一个循环
for line in $(find . -name "*plink_data*"); do
new_FOLD="$(echo $line| cut -d"." -f2-)"
mkdir -p "NEW_DIR/${new_FOLD}"
cp/mv $line "NEW_DIR/${new_FOLD}"
done发布于 2022-03-07 21:52:24
我建议:
cd /40/AD/GWAS_data/Source_Plink/2021_ADGC_EOAD
mkdir -p NEW_DIR
find . -name "plink_data" -not -path "./NEW_DIR/*" -exec cp --parent {} NEW_DIR \;https://stackoverflow.com/questions/71386756
复制相似问题