Files

將所有文件解壓到同名目錄中

  • April 2, 2022

Ubuntu 16.04

我有一個包含zip如下文件的目錄:

directory
|
|---zip1.zip
|---zip2.zip
|
...
|---zip_very_large_number.zip

現在,我有另一個目錄/home/usrname/anotherdir。有沒有辦法通過以下方式將所有文件解壓縮到/home/usrname/anotherdir

/home/usrname/anotherdir
|---zip1(directory)
|    |---_FILES_FROM_zip1.zip
|
|---zip2(directory)
|    |---_FILES_FROM_zip2.zip
|
|---zip3(directory)
|    |---_FILES_FROM_zip3.zip
|
...
|
|---zip_very_large_number(directory)
    |---_FILES_FROM_zip_very_large_number.zip

有沒有一種簡潔的方法來做到這一點unzip?我可以寫一個shell腳本,但它看起來不太好……

沒有捷徑可以做到這一點unzip,因為它一次只接受一個 zipfile 進行解壓縮。考慮某種shell循環,例如:

for d in *.zip
do
 dir=/home/usrname/anotherdir/zip${d%%.zip}
 unzip -d "$dir" "$d"
done

這是一個適用於目前目錄中任何 zip 的單行

for z in *.zip; do unzip "$z" -d "${z%".zip"}"; done

您可以將其添加到您的.bashrc

alias unzip_all='for z in *.zip; do unzip "$z" -d "${z%".zip"}"; done'

靈感來自:

Method #2: Unzipping Multiple Files from Linux Command Line Using Shell For Loop (Long Version)https://www.cyberciti.biz/faq/linux-unix-shell-unzipping-many-zip-files/

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