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

lea*_*ing 6 linux cp

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

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

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

Gil*_*il' 12

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

cp -a --attributes-only Dir1 Dir2
Run Code Online (Sandbox Code Playgroud)


thr*_*rig 7

或者更复杂,但只有一个文件系统传递(为了更多的可移植性,~应该写为$HOME

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

这里的复杂性在于布尔逻辑(这可能对学习有一些好处)和优先级(也很高兴知道)的复杂性,以及如何find使用隐式 AND-type和后续动作之间的 AND 来实现这些概念,以及 OR 出现为-o.

  • 虽然深奥的单行代码以其自己的方式令人印象深刻,并且肯定显示出对复杂外壳(或其他)咒语的出色掌握,但我选择在简单性和可读性方面越来越错误。也就是说,如果被复制的文件结构_非常_复杂,单个文件系统传递将是更好的选择。 (2认同)
  • 看个人背景,有的人分行思考,有的人按顺序思考。如果是一次性项目,那么一个命令更容易输入,但要重复使用和维护,离散步骤更清晰。 (2认同)