Ant TAR 작업을 사용하고 파일 권한을 보존하려면 어떻게해야합니까?

StackOverflow https://stackoverflow.com/questions/1517297

  •  19-09-2019
  •  | 
  •  

문제

물론 그것은 그것을 사용하여 수행 할 수 있습니다 exec task, 그러나 내 질문은 다음과 같습니다.

TAR 작업을 사용하여 수행 할 수 있습니까?

도움이 되었습니까?

해결책

이 메모에 따라 기존 권한을 유지하는 방법이 없다고 생각합니다. 작업을 복사하십시오:

유닉스 노트 : 파일을 복사 할 때 파일 권한은 유지되지 않습니다. 대신 기본 Umask 권한으로 끝납니다. 이는 현재 Java Runtimes에서 파일 권한을 쿼리하거나 설정할 수있는 수단이 없기 때문에 발생합니다. 권한 보존 복사 기능이 필요한 경우 사용하십시오 <exec executable="cp" ... > 대신에.

그러나, 그 타르 작업 하나 이상을 취할 수 있습니다 tarfileset 집단. 그만큼 tarfileset a로 정의 할 수 있습니다 filemode 및/또는 dirmode 속성 UNIX 권한을 지정합니다. 여러 포함 된 파일 만 해당 파일 만 포함하여 각각의 필수 권한 세트를 얻는 것을 지정하면 해당 세트의 파일이 해당 권한에 포함됩니다.

다른 팁

이 허가 부족으로 인해 개미 타 직무가 거의 쓸모가 없습니다. 운영 체제 타르를 실행 작업:

    <exec executable="tar" output="/dev/null" os="Linux">
        <arg value="--exclude-from=files_to_exclude.txt"/>
        <arg value="-cvz"/>
        <arg value="--file=${file.tar}"/>
        <arg value="."/>
    </exec>

사람에게 알려진 거의 모든 운영 체제를위한 GNU 타르 바이너리가 있습니다. 버전 제어 시스템에 그 중 하나를 넣고 운영 체제에 따라 사용하십시오. 예, 개미는 실행할 때마다 프로세스를 포크해야합니다.

Tarfileset을 사용하여 프로젝트에서 일했습니다. 누군가가 필요로하는 경우에 대한 예제는 다음과 같습니다.

    <tar destfile="${dist}/${module.name}-${version}.tar">
        <tarfileset dir="${package.dir}" filemode="550" includesfile="${home.dir}/includelist.txt">
            <include name="*.sh"/>
        </tarfileset>
    </tar>

이 예에서는 포함 elist.txt가 TAR 파일에 포함 할 파일을 알려주는 데 사용됩니다. *.sh 확장자가있는 모든 파일은 사용자와 그룹에 대한 권한 (550)을 읽고 실행합니다.

이것이 누군가를 돕기를 바랍니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top