在Linux中复制顶层文件夹结构而不复制文件

在Linux中复制顶层文件夹结构而不复制文件

我想复制文件夹结构(不包含文件),但只复制顶层文件夹。也就是说,使用我的源:

folder a
 * folder 1
 * folder 2
   * folder X
folder b
 * folder 3
folder c

我希望我的目的地是:

folder a
folder b
folder c

我如何在 Linux 中做到这一点?

答案1

使用 GNU find,它支持-printf,和 GNU xargs,它支持-r

find /source/path -mindepth 1 -maxdepth 1 -type d -printf '/target/path/%f\0' | xargs -r -0 -- mkdir --

答案2

你可以简单地这样做:

for dir in *; do mkdir /path/to/"$dir"; done

假设您要复制一切在当前目录中,并且该目录中只有目标文件夹,没有文件。它将收集当前目录中的所有名称 ( *) 并运行mkdir以在目标路径中创建该名称的空文件夹。

答案3

如果您想保留所有权等(至少在 CentOS 7 上有效):

find /source/path -maxdepth 1 -type d | cpio -pdvm /destination/path

相关内容