Bash
使用 tar 複製目錄,除了 node_modules 子目錄
我試圖了解如何
tar
在 Bash 腳本中使用將項目目錄複製到另一個位置,同時排除 node_modules 子目錄。此處發布了一條可能有用的評論,我已針對我的案例進行了重寫,如下所示:tar -cf - --exclude="node_modules" "${source}" | tar -xf - -C "${target}"
但是,在了解有關它的一些事情之前,我不願意執行此命令。這是我的問題-
--exclude
前面的單獨連字元和前面的單獨連字元的目的是什麼-C
?- .tar 文件實際上是在文件系統的某處創建的嗎?如果是這樣,它在哪里以及它的名字是什麼?
-
許多實用程序根據上下文將參數定義為標準輸入/輸出,對於 GNUtar
甚至不需要它,因為它用於輸入/輸出的預設文件是 stdio。據此,tar -cf - --exclude="node_modules" "${source}"
將tar
歸檔寫入標準輸出,這實際上是一個管道,其另一端tar -xf - -C "${target}"
作為提取的標準輸入提供給以下命令。- 在您的管道中,標準輸出永遠不會重定向到文件,所以不,
tar
實際上沒有創建存檔。