![在Linux中复制顶层文件夹结构而不复制文件](https://linux22.com/image/1379535/%E5%9C%A8Linux%E4%B8%AD%E5%A4%8D%E5%88%B6%E9%A1%B6%E5%B1%82%E6%96%87%E4%BB%B6%E5%A4%B9%E7%BB%93%E6%9E%84%E8%80%8C%E4%B8%8D%E5%A4%8D%E5%88%B6%E6%96%87%E4%BB%B6.png)
我想复制文件夹结构(不包含文件),但只复制顶层文件夹。也就是说,使用我的源:
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