使用不带 -r 或 while/for 循环的递归复制 find 命令

使用不带 -r 或 while/for 循环的递归复制 find 命令

我遇到了以下问题。通常,人们会使用命令 find exec cp -r 将所有内容从一个目录复制到另一个目录。在这种情况下,我不允许这样做,或者对 find 命令使用 while/for 循环。

我需要它做的是将所有内容连同完整的目录结构从一个目录复制到另一个目录。

答案1

你可以从这样的事情开始:

src=/home/user
dst=/to/dir
find -exec printf " echo {} | \
        sed 's|^$src|$dst|;s|/[^/]*$||' | \
        xargs -n1 -I@ mkdir -p @\n" \; | \
   sh

它在目标目录下创建目录结构。你可以向 printf 添加许多命令。

相关内容