저는 초보자 Linux
이며 현재 다음을 수행하려고 합니다.
- wordpress-4.1.1.zip의 내용을 해당 디렉토리(/my-test-site/wordpress-4.1.1.zip)에 압축을 풉니다.
내가 아는 unzip
한 디렉토리에서 이 명령을 실행할 수 있습니다.
unzip wordpress-4.1.1.zip
하지만 이로 인해 wordpress라는 하위 디렉토리가 생겼습니다. 그런 다음 하위 디렉터리로 이동하여 다음 명령을 실행하여 파일을 한 수준 위로 이동할 수 있습니다.
mv * ../
이렇게 하면 my-test-site 디렉토리에 원하는 모든 WordPress 핵심 파일이 있게 됩니다. 하지만 unzip 명령을 실행하고 파일이 포함된 하위 디렉터리를 만들지 않고 my-test-site 디렉터리에 직접 내용을 추출할 수 있는지 궁금합니다.
감사해요
답변1
두 가지 명령줄 옵션을 사용하여 unzip
원하는 결과를 얻을 수 있습니다.전제는 zip에 하위 디렉터리가 포함되어 있지 않다는 것입니다..
unzip -j -d /my-test-site wordpress-4.1.1.zip
우편번호가 다음과 같은 경우에 주의하세요.
foo
├── 1
├── 2
├── 3
├── 4
├── 5
├── 6
├── 7
├── 8
├── 9
└── bar
├── 1
├── 2
├── 3
├── 4
├── 5
├── 6
├── 7
├── 8
└── 9
이 옵션을 사용하면 에 포함된 파일이 foo/bar
에 있는 모든 파일을 삭제(해당 내용 대체)합니다 foo
. 즉, 이 -j
옵션은 제거됩니다.모두zip의 파일 위치에 상대적인 경로이며 현재 디렉터리(기본값) 또는 options 에서 지정한 디렉터리에 배치됩니다 -d
.
zip에 하위 디렉터리가 있는 경우 zip 파일을 추출하는 방법이 사용됩니다.
언제든지 명령에 대한 별칭을 설정할 수 있습니다.
alias wp_unzip='mv wordpress-4.1.1.zip /my-test-site && \
cd /my-test-site && unzip wordpress-4.1.1.zip && \
mv wordpress/* . && rmdir wordpress'