Zip
僅解壓縮 zip 文件的特定層/級別的 indo,使用 unzip
我使用這個命令來提取一個包含我的文件根備份的 zip 文件:
unzip /var/www/html/html-2018-01-08-02\:52\:11.zip -d /var/www/html/
這會提取文件根目錄內的所有數據,但是有一個問題,目前狀態是重複的文件根目錄:
/var/www/html/var/www/html/DATA
當然,我可以用 將數據移回,
mv
然後用 刪除重複的文件根目錄cd /var/www/html && rm -rf /var/www/html
,但最簡單的解決方案是直接實現該形式unzip
。我希望一開始就不會發生重複。
如何僅使用 zip 文件的特定層/級別解壓縮 indoes
unzip
?例如,我的 zip 包括:
- 第一層:
/var
。- 第二層:
/var/www
。- 第三層:
/var/www/html/
。我只想提取第四層的索引節點(第三層,當然是從零開始的索引)。
最終狀態應該是:
/var/www/html/DATA
您可以
unzip
通過路徑限制要提取的文件:使用萬用字元:
unzip foo.zip '*/*/*/*'
使用文字語法:
unzip foo.zip 'var/www/html/*'
例如:
$ zipinfo ../1.zip Archive: ../1.zip Zip file size: 1134 bytes, number of entries: 8 drwxrwxr-x 3.0 unx 0 bx stor 18-Jan-28 13:53 1/ drwxrwxr-x 3.0 unx 0 bx stor 18-Jan-28 13:53 1/2/ drwxrwxr-x 3.0 unx 0 bx stor 18-Jan-28 13:53 1/2/3/ drwxrwxr-x 3.0 unx 0 bx stor 18-Jan-28 13:53 1/2/3/4/ -rw-rw-r-- 3.0 unx 0 bx stor 18-Jan-28 13:53 1/2/3/4/d -rw-rw-r-- 3.0 unx 0 bx stor 18-Jan-28 13:53 1/2/3/c -rw-rw-r-- 3.0 unx 0 bx stor 18-Jan-28 13:53 1/2/b -rw-rw-r-- 3.0 unx 0 bx stor 18-Jan-28 13:53 1/a 8 files, 0 bytes uncompressed, 0 bytes compressed: 0.0% $ unzip ../1.zip '*/*/*/*' Archive: ../1.zip creating: 1/2/3/ creating: 1/2/3/4/ extracting: 1/2/3/4/d extracting: 1/2/3/c