ZIP 파일 디렉토리가 있습니다 (Windows 시스템에서 생성됨). 을 사용하여 수동으로 압축을 풀 수 unzip filename
있지만 셸을 통해 현재 폴더의 모든 ZIP 파일을 어떻게 압축 해제 할 수 있습니까?
우분투 리눅스 서버 사용하기.
ZIP 파일 디렉토리가 있습니다 (Windows 시스템에서 생성됨). 을 사용하여 수동으로 압축을 풀 수 unzip filename
있지만 셸을 통해 현재 폴더의 모든 ZIP 파일을 어떻게 압축 해제 할 수 있습니까?
우분투 리눅스 서버 사용하기.
답변:
와일드 카드를 피하기 위해 따옴표를 넣으십시오.
unzip "*.zip"
다음 bash 스크립트는 현재 디렉토리의 모든 zip 파일을 zip 파일의 파일 이름을 사용하여 새 디렉토리로 추출합니다.
다음 파일들 :
myfile1.zip
myfile2.zip
다음으로 추출됩니다 :
./myfile1/files...
./myfile2/files...
쉘 스크립트 :
#!/bin/sh
for zip in *.zip
do
dirname=`echo $zip | sed 's/\.zip$//'`
if mkdir "$dirname"
then
if cd "$dirname"
then
unzip ../"$zip"
cd ..
# rm -f $zip # Uncomment to delete the original zip file
else
echo "Could not unpack $zip - cd failed"
fi
else
echo "Could not unpack $zip - mkdir failed"
fi
done
"
파일 이름 에 따옴표 를 추가
unzip * .zip 또는 하위 폴더에있는 경우
find . -name "*.zip" -exec unzip {} \;
gzip'ed
파일 사용 gunzip -rfk .
각 폴더 내부 순환의 압축을 풀어줍니다
모든 .zip
파일의 압축을 풀고 파일과 이름이 같은 폴더에 새 폴더에 내용을 저장 .zip
하십시오.
find -name '*.zip' -exec sh -c 'unzip -d "${1%.*}" "$1"' _ {} \;
이것은 @phatmanace의 답변의 확장이며 @RishabhAgrahari의 의견을 다루고 있습니다 .
이것은 현재 디렉토리의 모든 zip 파일을 추출 할 것입니다. 만약 zip 파일 (하위 폴더에 있음)을 각 하위 폴더에서 추출하려면 어떻게해야합니까?
gzip'ed
파일 사용 gunzip -rfk .
각 폴더 내부 순환의 압축을 풀어줍니다
find: illegal option -- n
사용 하기 -다른 사람이 있습니까?
find . -name '*.zip' -exec sh -c 'unzip -d "${1%.*}" "$1"' _ {} \;
디렉토리 목록을 잊어 버렸습니다.
POSIX 쉘에서, 이것은 각 zip 파일에 대해 다른 디렉토리에 압축을 풉니 다 :
for file in *.zip
do
directory="${file%.zip}"
unzip "$file" -d "$directory"
done
for file in *.zip; do unzip "$file" -d "${file%.zip}"; done
for file in 'ls *.zip'; do unzip "${file}" -d "${file:0:-4}"; done
for file in *.zip; do ...
올바르게 하는 것이 더 안전 합니까?
이것은의 변종이다 페드로 로비 투의 답변을 사용하여 특정 확장자를 가진 파일 삭제에 재귀 적으로 디렉토리를 통해 루프를 어떻게 가르침 :
shopt -s globstar
root_directory="."
for zip_file_name in **/*.{zip,sublime\-package}; do
directory_name=`echo $zip_file_name | sed 's/\.\(zip\|sublime\-package\)$//'`
printf "Unpacking zip file \`$root_directory/$zip_file_name\`...\n"
if [ -f "$root_directory/$zip_file_name" ]; then
mkdir -p "$root_directory/$directory_name"
unzip -o -q "$root_directory/$zip_file_name" -d "$directory_name"
# Some files have the executable flag and were not being deleted because of it.
# chmod -x "$root_directory/$zip_file_name"
# rm -f "$root_directory/$zip_file_name"
fi
done
디렉토리의 모든 파일을 압축 해제하려면 터미널에 다음 cmd를 입력하십시오.
unzip '*.zip'
사용하다
sudo apt-get install unzip
unzip file.zip -d path_to_destination_folder
리눅스에서 폴더를 풀려면