Directory

解壓縮到與文件同名的文件夾(不帶 .zip 副檔名)

  • May 11, 2022

如何將文件(例如:)解壓縮foo.zip到同名文件夾(foo/)?

基本上,我想創建一個 unzip 的別名,將文件解壓縮到同名的文件夾中(而不是目前文件夾)。這就是 Mac 的解壓縮實用程序的工作方式,我想在 CLI 中做同樣的事情。

我用unar這個;預設情況下,如果存檔包含多個頂級文件或目錄,它會創建一個目錄來儲存提取的內容,以您描述的方式以存檔命名:

unar foo.zip

-d您可以使用以下選項在所有情況下強制創建目錄:

unar -d foo.zip

或者,一個函式可以這樣做unzip

unzd() {
   if [[ $# != 1 ]]; then echo I need a single argument, the name of the archive to extract; return 1; fi
   target="${1%.zip}"
   unzip "$1" -d "${target##*/}"
}

target=${1%.zip}

行刪除.zip副檔名,不考慮其他任何內容(因此foo.zip變為foo,並~/foo.zip變為~/foo)。這

${target##*/}

參數擴展刪除任何直到最後的東西/,所以~/foo變成foo. 這意味著該函式將任何.zip文件提取到目前目錄中以它命名的目錄中。如果unzip $1 -d "${target}"您想將存檔解壓縮到它旁邊的目錄中,請使用。

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