Directory

解壓tarball時創建目標目錄

  • November 19, 2020

是否可以創建一個目標目錄,類似於mkdir -p,我可以在我的 tar 命令中定義一個不存在的目標目錄,並且 tar 將為我創建目錄?

我知道我可以使用 將輸出重定向到目錄tar -C /target/dir,但是如果目標目錄不存在,這將不起作用。

mkdir -p /target/dir && tar -C /target/dir
tar -xvf bash.html_node.tar.gz --one-top-level

從 tar 命令的手冊頁

**--one-top-level**[=*DIR*]

將所有文件提取到DIR中,或者,如果不使用參數,則提取到由存檔的基本名稱命名的子目錄中(減去可辨識的標準壓縮後綴--auto-compress)。

      • 測試

測試 1

tar zxvf ../aaa.tgz --one-top-level
aaa/
aaa/222
aaa/111

tree aaa
aaa/
├── 111
└── 222

// 如果 tgz 名稱與存檔的 root_dir 相同,則無其他影響

測試 2

mv ../aaa.tgz ../bbb.tgz

tar zxvf ../bbb.tgz --one-top-level
aaa/
aaa/222
aaa/111

tree bbb
bbb
└── aaa
   ├── 111
   └── 222

// 如果 tgz 名稱與存檔的 root_dir 不同,則創建一個頂級目錄

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