创建与参考目录具有相同目录结构的空文件

创建与参考目录具有相同目录结构的空文件

我有一个Dir1包含多个子目录和文件的目录。我打算将其复制到Dir1Dir2以便其中的所有文件都只是空文件,但文件名与 Dir1 相同。

然后我打算将 Dir2 推送到 github,向用户解释示例数据结构和文件名。

是否有命令以仅将文件复制到目标文件为空但文件名相同的方式?

答案1

使用 GNU coreutils(例如,在非嵌入式 Linux 或 Cygwin 上),它就像这样简单

cp -a --attributes-only Dir1 Dir2

答案2

或者更复杂,但使用单个文件系统传递(为了获得更多的可移植性,~应该写为$HOME

find . \( -type d -exec mkdir -p "~/elsewhere/{}" \; \
  -o -type f -exec touch "~/elsewhere/{}" \; \)

这里的复杂性在于布尔逻辑(这可能对学习有一些好处)和优先级(也很好了解),以及如何find通过 和后续操作之间的隐式 AND-type以及 OR 的出现来实现这些概念-o

答案3

cd /path/to/oldroot
find . -type d -exec mkdir -p \"/path/to/newroot/{}\"\;
find . -type f -exec touch \"/path/to/newroot/{}\"\;

相关内容