dhb*_*lah 107 linux directory copy
我有 Eclipse 项目和“.project”文件,目录结构看起来像' myProject/.project
'。我想将这些“.project”文件复制到另一个目录,但我希望保留封闭目录名。
假设我有 ' a/myProject/.project
',我想将 ' myProject/.project
'复制到 ' b
',所以它是 ' b/myProject/.project
',但 ' b/myProject
' 不存在。当我尝试:
cp -r ./myProject/.project ../b
Run Code Online (Sandbox Code Playgroud)
它只复制“.project”文件本身,不复制“myProject”目录。请指教。
Jam*_*ale 189
您需要的开关是--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
Run Code Online (Sandbox Code Playgroud)
tar
与类似的东西一起使用:
mkdir b; tar cpf - myProject/ | tar xpf - -C b/
Run Code Online (Sandbox Code Playgroud)
(未测试。先试运行一下或在模型场景中尝试。)
小智 5
首先使用mkdir -p
递归父路径创建来创建目标文件夹。然后将内容复制到目标文件夹:
mkdir -p b/myProject/.project
cp -r a/myProject/.project/file b/myProject/.project
Run Code Online (Sandbox Code Playgroud)
小智 5
我将 cpio 与 find 结合使用。解释在这里。
您的用例示例:
find /a/myProject/.project/ -type f | cpio -p -dumv /b/.
Run Code Online (Sandbox Code Playgroud)
此命令查找其中的所有文件/a/myProject/.project/
并复制其中包含的任何文件,同时保留路径。
归档时间: |
|
查看次数: |
136928 次 |
最近记录: |