如何在Linux中复制文件保存目录路径?

如何在Linux中复制文件保存目录路径?

我有 Eclipse 项目和其中的“.project”文件,目录结构看起来像“ myProject/.project”。我想将这些“.project”文件复制到另一个目录,但我希望保留封闭的目录名称。

假设我有“ a/myProject/.project”,我想将“ myProject/.project”复制到“ b”,因此它是“ b/myProject/.project”,但“ b/myProject”不存在。当我尝试:

 cp -r ./myProject/.project ../b

它仅复制“.project”文件本身,而不复制“myProject”目录。请指教。

答案1

您需要的开关是--parents,例如:

jim@prometheus:~$ cp --parents test/1/.moo test2/
jim@prometheus:~$ ls -la test2/
total 42
drwxr-xr-x   3 jim jim    72 2010-09-14 09:32 .
drwxr-xr-x 356 jim jim 43136 2010-09-14 09:32 ..
drwxr-xr-x   3 jim jim    72 2010-09-14 09:32 test
jim@prometheus:~$ ls -la test2/test/1/.moo
-rw-r--r-- 1 jim jim 0 2010-09-14 09:32 test2/test/1/.moo

答案2

您还可以使用rsync -R,它可在cp --parents无法使用的 OSX 上使用。

https://stackoverflow.com/a/13855290/598940

答案3

与类似的东西一起使用tar

mkdir b; tar cpf - myProject/ | tar xpf - -C b/

(未经测试。请先进行试运行或在模型场景中尝试。)

答案4

我将 cpio 与 find 结合使用。解释在这里

您的用例示例:

find /a/myProject/.project/ -type f | cpio -p -dumv /b/.

此命令查找所有文件/a/myProject/.project/并复制其中包含的任何文件(同时保留路径)。

相关内容