Zip

僅將壓縮存檔中的特定文件提取到給定目錄

  • December 14, 2021

我需要從我知道路徑的 ZIP 文件中提取一個文件。有沒有類似下面的命令:

unzip -d . myarchive.zip path/to/zipped/file.txt

不幸的是,上面的命令提取並重新創建了文件的整個路徑./path/to/zipped/file.txt。有沒有辦法讓我簡單地將文件拉到指定目錄中?

-p您可以使用以下選項僅將文本提取到標準輸出:

unzip -p myarchive.zip path/to/zipped/file.txt >file.txt

這不會提取元數據(日期、權限……),僅提取文件內容(顯然,它僅適用於正常文件,不適用於符號連結、設備、目錄……)。這是為了方便以後不必移動文件而付出的代價。

或者,將存檔掛載為目錄並複製文件。使用AVFS

mountavfs
cp -p ~/.avfs"$PWD/myarchive.zip#"/path/to/zipped/file.txt .

或使用fuse-zip

mkdir myarchive.d
fuse-zip myarchive.zip myarchive.d
cp -p myarchive.d/path/to/zipped/file.txt .
fusermount -u myarchive.d; rmdir myarchive.d

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