wordpress tarball에서 특정 디렉토리를 추출하고 싶습니다. 구체적으로는 tarball 내부의 디렉토리 구조인 것 같지만 wp-includes
추출한 후에는 선두 wordpress 디렉토리 만 필요합니다 . 어떻게 해야 합니까?.
wordpress/wp-includes
./wp-includes
답변1
특정 디렉토리(및 그 내용)를 재귀적으로 추출하려면 명령줄에서 추가 인수로 전달하기만 하면 됩니다. 그리고GNU 타르, 이 옵션을 사용하여 선행 디렉터리를 제거할 수 있습니다 --strip-components
(더 일반적으로는 변환 파일 이름을 사용합니다 --transform
). Linux가 아닌 시스템에서는 다음을 사용할 수 있습니다.공원(POSIX에 있지만 일부 Linux 배포판에서는 기본 설치에서 이를 생략합니다.) 및 해당 -s
옵션.
tar xf foo.tar --strip-components=1 wordpress/wp-includes #GNU tar
pax -r <foo.tar -pp -s '!^wordpress/!!' wordpress/wp-includes
모든 것을 빈 이름으로 다시 쓰는 규칙을 추가하여 포함 목록을 다시 쓰기 규칙과 결합할 수 있습니다. 이는 "추출하지 않음"을 의미합니다. 이 규칙은 이전 규칙이 일치하지 않는 경우에만 적용됩니다.
pax -r <foo.tar -pp -s '!^wordpress/\(wp-includes/\)!\1!' -s !.*!!
답변2
GNU tar가 있다고 가정하면 다음을 사용할 수 있습니다.--strip-components
:
$ tar xaf tarball.tar.gz --strip=1 wordpress/wp-includes
나는 BSD tar의 현재 버전도 이것을 지원한다고 믿습니다 --strip-components
. 최악의 경우에는 다음과 같이 할 수 있습니다.
$ tar xzf tarball.tar.gz wordpress/wp-includes
$ mv wordpress/wp-includes .
$ rmdir wordpress