使用find与mkdir组合可高效复制目录结构,命令为find /path/to/source -type d -exec mkdir -p /path/to/destination/{} \;,保留完整层级。2. rsync通过rsync -av --include='/' --exclude='' /source/ /destination/实现仅复制目录结构,适合远程同步与增量更新。3. 结合find、sed与mkdir可去除源路径前缀,如find /home/user/data -type d | sed 's|^/home/user/data||' | xargs -I {} mkdir -p /tmp/struct{},仅复制子目录结构。4. 操作前可用find /source -type d | sed 's|/source|/dest|'预览路径,确保正确性。根据是否保留路径前缀、自动化需求等选择合适方法,注意路径斜杠避免结构错位。

在Linux中,只复制文件夹结构而不复制文件内容,可以通过find、cp、mkdir等命令组合实现。下面介绍几种常用方法,帮助你快速复制目录结构。
使用 find 和 mkdir 复制目录结构
这是最常见且高效的方法。利用find查找所有目录,再用mkdir创建对应结构。
find /path/to/source -type d -exec mkdir -p /path/to/destination/{} \;
说明:
-
/path/to/source是源目录路径 -
-type d表示只匹配目录 -
-exec mkdir -p对每个找到的目录执行创建操作 -
/path/to/destination是目标根路径
注意:此命令会保留从源路径开始的完整层级。如果只想复制子目录结构,可结合cd和相对路径处理。
使用 rsync 只复制目录结构
rsync 也可以实现该功能,通过过滤规则跳过文件。
rsync -av --include='*/' --exclude='*' /source/ /destination/
参数解释:
-
-a:归档模式,保留权限、时间等属性 -
-v:显示详细过程 -
--include='*/':包含所有目录 -
--exclude='*':排除所有文件
这种方法适合远程同步场景,也支持增量更新。
使用 find + sed + mkdir(去除前缀路径)
如果你不希望目标路径包含源路径的前缀,可以配合sed处理路径。
find /home/user/data -type d | sed 's|^/home/user/data||' | xargs -I {} mkdir -p /tmp/struct{}
这条命令将/home/user/data下的目录结构复制到/tmp/struct中,只保留子目录层级。
小技巧:测试命令效果
在执行前,建议先预览要创建的目录:
find /source -type d | sed 's|/source|/dest|'
确认路径正确后再执行实际创建操作,避免出错。
基本上就这些常用方法。根据你的具体需求选择合适的方式,比如是否保留绝对路径、是否用于脚本自动化等。操作时注意路径结尾斜杠的影响,避免结构错位。










