我有以下目錄結構:
$DIRECTORY/*.xml
$DIRECTORY/*.others
$DIRECTORY/subdir1/*.xml
$DIRECTORY/subdir1/*.others
$DIRECTORY/subdir2/*.xml
$DIRECTORY/subdir2/*.others
并希望將所有 xml 檔案復制到 $OUTPUT_DIRECTORY中,包括$DIRECTORY 的目錄結構,因此結果將是:
$OUTPUT_DIRECTORY/*.xml
$OUTPUT_DIRECTORY/subdir1/*.xml
$OUTPUT_DIRECTORY/subdir2/*.xml
我知道 find 同時具有 -exec 和 -execdir ,它們將使用 find 的輸出作為指定命令的引數。但是,我看不到指定“-execdir 但將子目錄保留為以下引數”的方法。值得注意的是,子目錄可以是 n 深。
有沒有辦法純粹用 find 來做到這一點,還是需要其他一些 CLU?
find "${DIRECTORY}" -name '*.xml' -execdir cp "{}" "${OUTPUT_DIRECTORY}" \;
uj5u.com熱心網友回復:
您可能想使用rsync而不是find:
rsync -amv --include='*/' --include='*.xml' --exclude='*' "$DIRECTORY"/ "$OUTPUT_DIRECTORY"
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/478112.html
