說如果我有一個文件夾'圖像',裏面有0001.zip到9999.zip,我想將它們全部解壓縮並保存在具有文件名的子文件夾中,例如,0001.zip將會是解壓縮並保存到/ 0001,0002.zip將解壓縮並保存到/ 0002,我試着做Unix unzip:如何批量解壓ZIP文件到一個文件夾並保存在子文件夾中?
unzip '*.zip'
但提取當前文件夾中的所有文件。
說如果我有一個文件夾'圖像',裏面有0001.zip到9999.zip,我想將它們全部解壓縮並保存在具有文件名的子文件夾中,例如,0001.zip將會是解壓縮並保存到/ 0001,0002.zip將解壓縮並保存到/ 0002,我試着做Unix unzip:如何批量解壓ZIP文件到一個文件夾並保存在子文件夾中?
unzip '*.zip'
但提取當前文件夾中的所有文件。
你可以做這樣的事情:
for file in *.zip; do
dir=$(basename "$file" .zip) # remove the .zip from the filename
mkdir "$dir"
cd "$dir" && unzip ../"$file" && rm ../"$file" # unzip and remove file if successful
cd ..
done
,或者在同一行一起運行:
for file in *.zip; do dir=$(basename "$file" .zip); mkdir "$dir"; cd "$dir"; unzip ../"$file" && rm ../"$file"; cd ..; done
如果您需要/想保持原來的.zip文件,只是刪除&& rm ../"$file"
位。
for zip in *.zip
do
unzip "$zip" -d "${zip%.zip}"
done