zip 파일의 특정 폴더 내용을 압축해제하려고 합니다. 내 zip 파일 구조는 다음과 같습니다.
- 폴더 1
- 폴더1_1
- 파일 1_1
- 폴더 2
- 폴더 3
- 파일 1
- 파일 2
난 그냥 압축을 풀고 싶어콘텐츠폴더 1의
나는 다음을 사용하려고합니다 :
unzip -d path_to_unzip/ results.zip 'folder1/*'
불행히도 다음과 같은 구조가 생성됩니다.
path_to_unzip/folder1/folder_1_1 등...
불필요한 폴더를 삭제하기 위해 보관하는 방법 1?
미리 감사드립니다!
답변1
불필요한 폴더를 삭제하기 위해 보관하는 방법 1?
Ignacio가 올바르게 지적했듯이 unzip
그렇지 않습니다.
나는 이것을 제안하고 싶습니다 :
TMPDIR=`mktemp -d` || exit 1
unzip -d ${TMPDIR}/ results.zip 'folder1/*'
mv ${TMPDIR}/folder1/* path_to_unzip/
rm -r ${TMPDIR}
기본적으로 단일 파일 시스템의 파일 작업은 원자적이므로, 즉 "거의" 즉시 수행되므로 대상 경로와 동일한 파일 시스템에 있는 mv
한 성능에 실제 영향은 없습니다 . /tmp
그렇지 않고 ZIP 파일이 큰 경우 대상 파일 시스템의 임시 폴더에 압축을 풀어야 합니다. 여기서는 대상 디렉터리의 상위 디렉터리를 얻습니다.
TMPDIR=`mktemp -p path_to_unzip/.. -d` || exit 1