Directory
解壓縮到與文件同名的文件夾(不帶 .zip 副檔名)
如何將文件(例如:)解壓縮
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}"
您想將存檔解壓縮到它旁邊的目錄中,請使用。