Solaris

解壓 Solaris 上特定文件夾的內容

  • October 26, 2017

我嘗試解壓縮 zip 文件的特定文件夾的內容。我的 zip 文件結構如下所示:

  • 文件夾1

    • 文件夾 1_1
    • 文件 1_1
  • 文件夾2

  • 文件夾3

  • 文件 1

  • 文件2

我只想解壓縮文件夾 1 的內容

我嘗試使用:

unzip -d path_to_unzip/ results.zip 'folder1/*'

不幸的是,它創建了一個結構,如:

path_to_unzip/folder1/folder_1_1 等…

如何歸檔以擺脫不必要的文件夾 1?

提前謝謝了!

如何歸檔以擺脫不必要的文件夾 1?

正如伊格納西奧正確指出的那樣,unzip不能。

我會提出這樣的建議:

TMPDIR=`mktemp -d` || exit 1
unzip -d ${TMPDIR}/ results.zip 'folder1/*'
mv ${TMPDIR}/folder1/* path_to_unzip/
rm -r ${TMPDIR}

基本上,由於mv單個文件系統上的文件操作是原子的,例如“幾乎”立即執行,因此不會對性能產生真正的影響……前提是您/tmp與目標路徑位於同一文件系統上。如果不是並且 ZIP 文件很大,則應將其解壓縮到目標文件系統上的臨時文件夾中。在這裡,我們取目標目錄的父目錄:

TMPDIR=`mktemp -p path_to_unzip/.. -d` || exit 1

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