Bash

使用 tar 複製目錄,除了 node_modules 子目錄

  • August 1, 2022

我試圖了解如何tar在 Bash 腳本中使用將項目目錄複製到另一個位置,同時排除 node_modules 子目錄。此處發布了一條可能有用的評論,我已針對我的案例進行了重寫,如下所示:

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

但是,在了解有關它的一些事情之前,我不願意執行此命令。這是我的問題-

  1. --exclude前面的單獨連字元和前面的單獨連字元的目的是什麼-C
  2. .tar 文件實際上是在文件系統的某處創建的嗎?如果是這樣,它在哪里以及它的名字是什麼?
  1. -許多實用程序根據上下文將參數定義為標準輸入/輸出,對於 GNUtar甚至不需要它,因為它用於輸入/輸出的預設文件是 stdio。據此,tar -cf - --exclude="node_modules" "${source}"tar歸檔寫入標準輸出,這實際上是一個管道,其另一端tar -xf - -C "${target}"作為提取的標準輸入提供給以下命令。
  2. 在您的管道中,標準輸出永遠不會重定向到文件,所以不,tar實際上沒有創建存檔。

引用自:https://unix.stackexchange.com/questions/711983