將檔案從來源目錄複製到目標基底目錄並維護來源路徑

將檔案從來源目錄複製到目標基底目錄並維護來源路徑

請原諒,我可能沒有使用正確的術語來描述問題,並且誤解了幾個常見命令的最基本用法。

我有一個簡單的 find 語句來尋找我想要複製的檔案。我想附加 -exec cp {} 並讓 cp 將檔案從來源目錄複製到新的基本目錄,但包括完整路徑。例如:

  • find . -name *.txt位於/user/username/projects/source.txt
  • cp {} [now what?]將文件複製到/user/newuser/projects/source.txt

答案1

rsync -rlpv --files-from=<(find ...) /user/username/projects /user/newuser

答案2

如果您可以確定所有子目錄都存在,那麼這是一個有趣的選項:

cd /user/username/
find . -name \*.gz | sed 's/\.\(.*\)/.\1 ..\/newuser\1/' | xargs -n2 cp

相關內容