Kus*_*nda 24
使用rsync:
rsync -a --include='*/' --exclude='*' /some/path/dir/ dir
Run Code Online (Sandbox Code Playgroud)
这将在当前目录中重新创建/some/path/diras的目录结构dir,而不复制任何文件。
由于包含模式,源路径中遇到的任何目录都将在目标上创建,但其他任何目录都将被排除。作为使用-a( --archive) 的副作用,您将在目标中的所有子目录上获得与源中相同的时间戳。这也适用于从远程目录创建本地目录结构(反之亦然)。
Siv*_*iva 13
尝试这个,
cd /source/dir/path
find . -type d -exec mkdir -p -- /destination/directory/{} \;
Run Code Online (Sandbox Code Playgroud)
. -type d 递归列出当前路径中的目录。mkdir -p -- /destination/directory/{} 在目的地创建目录。 这依赖于find支持{}在参数词中间扩展的a 。
您可以使用find遍历源结构并调用mkdir它遇到的每个目录。
此示例使用find,将您的目录结构从复制foo到/tmp/another/
( cd foo && find -type d -exec sh -c 'for d do mkdir -p "/tmp/another/$d"; done' sh {} + )
Run Code Online (Sandbox Code Playgroud)
该exec环路建立了一套目录下foo,然后将其传递给mkdir。如果您没有find理解的版本,则+可以\;以牺牲效率为代价使用。替换mkdir用echo mkdir,看看会发生什么,没有实际去做。