압축 파일을 사용하고 싶은 경우 tar -cvf
아래와 같은 조건을 주는 옵션이 있나요?
디스크 0:/centos/user0 - 15G 사용 가능 디스크 1:/centos/user1 - 1G 사용 가능
cd /centos/user0/
tar -cvf /centos/user1/test01.tar *
사용 가능한 디스크 공간이 매우 작기 때문에 /centos/user1
사용 가능한 디스크 공간이 300M 미만이면 압축을 중지하고 싶습니다./centos/user1
tar
기능적으로 그러한 옵션이 있습니까? 아니면 이것을 할 수 있는 방법이 있나요?
답변1
대부분의 Unix 유틸리티와 마찬가지로 tar
아카이브를 생성하는 한 가지 기능을 수행합니다. 조건에 따라 아카이브를 생성하거나 조건에 따라 중단하는 기능이 없습니다. 후자는 외부 명령을 주기적으로 폴링하는 작업이 포함될 수 있으므로 일반적인 상황에서는 상대적으로 비효율적입니다.
데이터의 크기를 확인할 수 있습니다앞으로을 사용하여 압축 du
한 다음 아카이브 생성 여부를 결정할 수 있습니다. tar
디스크 공간이 부족한 것으로 감지되면 프로세스를 종료하고 파일을 삭제하는 하위 셸에서 백그라운드 작업을 생성할 수도 있습니다 . 그러나 후자의 방법은 시스템에 디스크가 부족해지기 전에 작업을 종료할 만큼 빠르지 않을 수 있습니다.
마지막으로 특정 사용자를 생성하고 작은 디스크에 할당량을 추가하면 할당량이 초과되면 작업이 완료되지 않습니다. 여전히 아카이브의 일부를 삭제해야 하지만 이것이 효율적인 접근 방식입니다.
답변2
tar
내 예는 이 질문의 원래 문제를 해결하지 못할 수도 있지만 조건문을 간접적으로 사용하는 아이디어를 공유하고 싶습니다.
tar 아카이브를 생성합니다:
tar cf sample.tar sample.txt
find
tar
예를 들어 CSS 파일만 추가하려면 결합 기능을 사용하세요 .find . -name "*.css" -exec tar rf sample.tar {} \;
아니면 그냥 실행 파일을 추가하세요:
find . -executable -exec tar rf sample.tar {} \;
아카이브 파일을 확인하십시오.
tar tf sample.tar