Bash 如何复制带有符号链接的目录并解析它们?

Bash 如何复制带有符号链接的目录并解析它们?,bash,shell,terminal,copy,symlink,Bash,Shell,Terminal,Copy,Symlink,我希望使用Bash/Shell脚本递归复制包含符号链接(symlinks)以及普通文件的目录的内容。我不知道如何复制符号链接内容。伪代码如下所示: for file in directory do if is symlink resolve symlink and copy its contents else copy the file / folder base/ dir1/ symlinkdir1*/ (--> ../somewhere/else/d

我希望使用Bash/Shell脚本递归复制包含符号链接(symlinks)以及普通文件的目录的内容。我不知道如何复制符号链接内容。伪代码如下所示:

for file in directory do
  if is symlink
    resolve symlink and copy its contents
  else 
    copy the file / folder
base/
  dir1/
  symlinkdir1*/ (--> ../somewhere/else/dirA)
    /file1
    /file2
  symlinkdir2*/ (--> ../somewhere/else/dirB)
    /file3
    /file4
  …
base/
  dir1/
  symlinkdir1/ (no symlink, actual directory)
    /file1
    /file2
  symlinkdir2/ (no symlink, actual directory)
    /file3
    /file4
  …
我的目录结构如下所示:

for file in directory do
  if is symlink
    resolve symlink and copy its contents
  else 
    copy the file / folder
base/
  dir1/
  symlinkdir1*/ (--> ../somewhere/else/dirA)
    /file1
    /file2
  symlinkdir2*/ (--> ../somewhere/else/dirB)
    /file3
    /file4
  …
base/
  dir1/
  symlinkdir1/ (no symlink, actual directory)
    /file1
    /file2
  symlinkdir2/ (no symlink, actual directory)
    /file3
    /file4
  …
完成复制过程后,我希望有一个如下目录结构:

for file in directory do
  if is symlink
    resolve symlink and copy its contents
  else 
    copy the file / folder
base/
  dir1/
  symlinkdir1*/ (--> ../somewhere/else/dirA)
    /file1
    /file2
  symlinkdir2*/ (--> ../somewhere/else/dirB)
    /file3
    /file4
  …
base/
  dir1/
  symlinkdir1/ (no symlink, actual directory)
    /file1
    /file2
  symlinkdir2/ (no symlink, actual directory)
    /file3
    /file4
  …

它只是
cp-r./SourceFolder./DestFolder

只要使用
cp
命令和
-r
选项递归复制即可。不需要所有脚本,

cp-rL/source/destination

r=递归
L=跟随并展开符号链接

Nope。这不起作用。目的地仍然包含符号链接。Macose上需要大写字母-R使用L和不使用L有什么区别?另外两个答案没有用,我想知道有什么区别