如何在 Linux 中复制文件并保留部分路径?

How to copy files and preserve partial paths in Linux?

使用 --parent 可以轻松复制文件并保留完整路径作为源。没有找到关于如何保留部分路径的问题和解决方案,如下所示,将部分路径和文件名保持小写,

来源:/A/B/c/d/e.txt

目标:/X/Y/c/d/e.txt

我能想到的only/dumb方式是从源头解析出"c/d",然后"mkdir -p /X/Y/c/d"和"cp /A/B/c/d/e.txt /X/Y/c/d"。没有所有 pre/postfix 字符串操作,有没有更好的单行方法?

一个简单的方法是首先 cd(或 pushd/popd)进入 /A/B,然后让 -t--target-directory)选项复制相对路径层次结构。

cd /A/B && cp -t /X/Y --parents c/d/e.txt