Files

從 tar 文件中的目錄中提取文件而不創建該目錄

  • July 10, 2020

我有一個 tarfile,它具有以下結構:

- dir1
-- file
- dir2
- dir3

如果我嘗試執行tar -xf tarfile.tar.gz dir1/file,將創建包含該文件的 dir1。相反,我想只獲取沒有目錄的文件。我可以移動文件並刪除目錄,但我想知道 tar 命令是否支持直接執行此操作。

我正在使用 Alpine Linux。

POSIXly(除了gunzip不是 POSIX 命令的部分):

gunzip < file.tar.gz | pax -rs'|.*/||' dir1/file1

bsdtar

tar -s'|.*/||' -xf file.tar.gz dir1/file1

使用 GNU tar

tar --transform='s|.*/||' -xf file.tar.gz dir1/file1

star

star -s '|*/||' -x -f file.tar.gz dir1/file1

請注意,對於其中一些,如果文件是符號連結,則替換也會影響符號連結的目標。

您可以提取到標準輸出 (-O) 並將其通過管道傳輸到所需的文件名。

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