使用 tar 复制目录(node_modules 子目录除外)

使用 tar 复制目录(node_modules 子目录除外)

我试图了解如何tar在 Bash 脚本中使用将项目目录复制到另一个位置,同时排除 node_modules 子目录。发布了一条可能有用的评论这里,我已经为我的用例重写​​了,如下所示:

tar -cf - --exclude="node_modules" "${source}" | tar -xf - -C "${target}"

然而,在了解一些有关它的事情之前,我不愿意运行这个命令。这是我的问题 -

  1. --excludethe 之前的单独连字符和 the 之前的单独连字符的用途是什么-C
  2. .tar 文件实际上是在文件系统中的某个位置创建的吗?如果有,它在哪里命名?

答案1

  1. -许多实用程序根据上下文将参数定义为标准输入/输出,对于 GNU 来说甚至tar不需要它,因为它用于输入/输出的默认文件是 stdio。据此,tar -cf - --exclude="node_modules" "${source}"tar存档写入标准输出,这实际上是一个管道,其另一端提供给以下命令tar -xf - -C "${target}"作为提取的标准输入。
  2. 在您的管道中,标准输出永远不会重定向到文件,因此tar实际上不会创建任何存档。

相关内容