需求说明
当需要拷贝多个文件并且需要保留源文件的目录树结构时, 如果源目录的文件比较纯净,没有其他相关的文件或目录时, 我们只需要执行
~$ #cp -r <源目录> <新目录>
~$ cp -r workspace/project workspace/Cpp
但是, 如果我们需要拷贝的文件所在的目录里包含了其他项目或程序的文件或目录, 那我们就不能这么干
比如,
- 在 /etc或者/usr/local/bin下面有很多我们自己项目的相关配置文件和程序文件, 并且我们知道这些文件路径
- 包含指定字符串的文件名, 比如 *.log
- 我们自己制作或者我们比较感兴趣的其他厂商的 *.deb程序包(Ubuntu使用软件包)
针对自己的项目配置文件
我们可以新建一个文本文档, 里面把我们所关心的文件列出来
list.txt
/etc/app/app.cnf
/etc/app/conf.d/a.cnf
/etc/app/conf.d/b.cnf
/etc/app/conf.d/c.cnf
/etc/app/conf.d/d.cnf
这样我们就可以通过使用 cat list.txt 获取到我们的文件路径列表
此时我们只需要使用
~$ cp --parent