두 tar 명령 -cf와 -Jchf의 차이점

두 tar 명령 -cf와 -Jchf의 차이점

두 개의 서로 다르지만 유사한 명령인 두 곳에서 실행되는 Python 스크립트가 있습니다.

os.system("tar cf - -C %s . 2>/dev/null 3>/dev/null | 7za a -p%s -si %s 1>/dev/null 2>/dev/null 3>/dev/null" % (cf, self.config.get(jn, "archpass"), filename))


os.system("tar -Jchf - -C %s . 2>/dev/null 3>/dev/null | 7za a -p%s -si %s 1>/dev/null 2>/dev/null 3>/dev/null" % (cf, self.config.get(jn, "archpass"), filename))

이 스크립트는 Ubuntu 서버에서 웹사이트를 백업하는 데 사용됩니다. 따라서 대부분의 파일은 html/php/js/jpg입니다. 개선해야 할 사항이 있는지 확인하려면 이 명령에 대해 더 자세히 알아야 합니다.

질문 1)tar cf이들그리고 의 차이점은 무엇인가요 tar -Jchf? 불행히도 tar --help추가 매개변수를 이해하는 데 도움이 되지 않았습니다 -Jf.

질문 2)tar도 아카이브됩니까? 모든 것을 에 보내는 목적은 무엇입니까 7za? 이중 신고?

답변1

명령의 실제 차이점은 Jh아래에 설명된 대로 스위치입니다( man tar).

-h, --dereference
              Follow symlinks; archive and dump the files they point to.
-J, --xz
              Filter the archive through xz(1).

따라서 심볼릭 링크가 아카이브를 압축 xz하고 아카이브 링크 자체가 아닌 심볼릭 링크를 따르도록 강제합니다.

관련 정보