我正在尝试将一些文件从一个目录复制到另一个目录并解析目标目录中的所有符号链接。为了更好地说明我的意思,我的源目录如下所示:
source
|-- dir1
| `-- file1
|-- dir2
| `-- file2
`-- dir3
`-- file3
目标目录:
dest
|-- dir1
|-- dir2 -> dir1
`-- dir3
我想递归地将文件从
source
复制到dest
,这样操作后,目标目录如下所示:
dest
|-- dir1
| |-- file1
| `-- file2
|-- dir2 -> dir1
`-- dir3
`-- file3
我目前正在尝试使用
cp -R source/. dest/
执行此操作(由于其他原因,我无法使用 shell glob *
),但它失败并出现错误 cp: target dest/./dir2 is not a directory
。怎样才能达到想要的效果呢?
我建议使用
find
:
cd /path/to/source
find . -type f -exec cp {} /path/to/dest/{} \;