Zip
僅將壓縮存檔中的特定文件提取到給定目錄
我需要從我知道路徑的 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