假設我想復制一些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 \;
我該怎么做呢?謝謝!
更新:我能夠cp使用來自@Cyrus 的答案來執行我的任務,但不能使用mv. 我以為在這個命令中應用cpandmv不會有什么不同,但我錯了。事實上,我需要同時使用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
uj5u.com熱心網友回復:
我建議:
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://www.uj5u.com/qita/440894.html
上一篇:Unixshell回圈檢查一個目錄是否存在于多個目錄中
下一篇:如何在curl中參考/使用變數
