상대 경로가있는 tar 사용하여 아카이브를 만들려고합니다. 다음 명령을

상대 경로를 사용하여 tar를 사용하여 아카이브를 만들려고합니다. 다음 명령을 사용합니다.

tar czf ~/files/wp/my-page-order.tar.gz -C ~/webapps/zers/wp-content/plugins/ ~/webapps/zers/wp-content/plugins/my-page-order

그러나 보관 된 파일에는 여전히 절대 경로가 있습니다. 상대 경로와 함께 tar를 사용하려면 어떻게해야합니까?



답변

‘~’는 쉘에 의해 확장됩니다. -C와 함께 ‘~’를 사용하지 마십시오.

tar czf ~/files/wp/my-page-order.tar.gz \
      -C ~ \
       webapps/zers/wp-content/plugins/my-page-order

(tar에는 webapps / zers / wp-content / plugins / my-page-order 경로가 포함됩니다) 또는

tar czf ~/files/wp/my-page-order.tar.gz \
      -C ~/webapps/zers/wp-content/plugins \
       my-page-order

(tar에는 내 페이지 순서 경로가 포함됩니다)

아니면 그냥 먼저 CD를 ….

cd ~/webapps/zers/wp-content/plugins
tar czf ~/files/wp/my-page-order.tar.gz my-page-order

답변

-C new_cwd현재 작업 디렉토리를로 변경합니다 new_cwd. 다음 인수는에 대해 평가됩니다 new_cwd.

tar czf ~ / files / wp / my-page-order.tar.gz -C ~ / webapps / zers / wp-content / plugins / my-page-order


답변

옵션 tar이없는 경우 비 GNU 솔루션 -z:

pushd ~/files/wp; tar cvf - my-page-order | gzip > my-page-order.tar.gz && rm -rf my-page-order; popd

편집 (포함 &&여부 rm) :

pushd ~/files/wp && tar cvf - my-page-order | gzip > my-page-order.tar.gz && popd