2014-09-09 1 views
0

나는 아카이브 압축을 풀 수있는 makefile이있다. 아카이브가 이미 압축이 풀린 경우에도 (그리고 변경 사항이없는 경우에도) 수행됩니다.이미 추출하지 않은 경우에만 추출하는 방법은 무엇입니까?

all: 
    tar zxvf soplex-1.7.2.tgz 

이 문제를 방지 할 방법이 있습니까? 나는 그것이 기존의 파일을 보관 만들기 위해 K 플래그를 사용하여 시도했지만이 정확하게 좋은 메이크업 방법이 아닙니다하지만 방법 make가 수행으로 작동 이런 종류의 정말 맞지 않는 나에게이

soplex-1.7.2/src/vector.cpp 
tar: soplex-1.7.2/src/vector.cpp: Cannot open: File exists 
+0

일반적으로 Make를하지 않고 * 수행하는 방법을 모르는 경우 Make로 무언가를 할 수 없습니다. '--keep-newer-files' 옵션을 사용하면 어떨까요? – Beta

답변

0

을 제공합니다 (마커로 tarball 안의 알려진 sentinel 파일을 사용하고 싶지 않다면).

all: 
     tar -df soplex-1.7.2.tgz 2>/dev/null || tar -xvf soplex-1.7.2.tgz 

는 (당신의 tar는 그것 자체를 필요로 알아낼 수없는 경우 수동 tarz 플래그를 제공 할 수 있습니다.)

는 또한이 하나 경우에 매우 비용이 있습니다 tarball에있는 나중의 파일은 전체 tarball과 관련 디스크 활동을 순차적으로 두 번 스캔해야하기 때문에 누락/수정 된 파일입니다.

관련 문제