추출되지 않은/덮어쓰지 않은 파일이 아닌 tar로 추출된 파일만 표시하려면 어떻게 해야 합니까?

추출되지 않은/덮어쓰지 않은 파일이 아닌 tar로 추출된 파일만 표시하려면 어떻게 해야 합니까?

tar 아카이브를 추출하는 데 사용하고 있습니다 tar -xf /tmp/update.tar -C / -v --keep-newer-files. 이 -v옵션은 처리된 모든 파일을 표시하며 --keep-newer-files설명이 필요합니다.

모든 파일이 이미 존재하므로 다음과 같은 결과가 나타납니다.

usr/local/bin/execstate.log
tar: Current ‘usr/local/bin/execstate.log’ is newer or same age
usr/local/bin/dblist.sh
tar: Current ‘usr/local/bin/dblist.sh’ is newer or same age
usr/local/bin/dbblacklist.sh
tar: Current ‘usr/local/bin/dbblacklist.sh’ is newer or same age

해당 --warning-no-ignore-newer옵션은 경고를 전환하지만 결과는 다음과 같습니다.

usr/local/bin/execstate.log
usr/local/bin/dblist.sh
usr/local/bin/dbblacklist.sh

하지만 이 파일 중 어느 것도 추출되지 않습니다!

추출된 파일이 아직 존재하지 않는 경우에만 표시하고 싶습니다!

답변1

이는 다음을 사용하여 수행할 수 있습니다 star.

star -C / -xv -nowarn < /tmp/update.tar

gtar그 기능을 완전히 복제 하지 못하는 것 같습니다 star;-)

OSS 친화적인 Linux 배포판에는 star바이너리 패키지가 있습니다. 다른 배포판의 경우 schilytools다음 위치에서 최신 소스 아카이브를 얻은 후 컴파일 하십시오.http://sourceforge.net/projects/schilytools/files/

현재 스타 버전은 1.6.1입니다. -nowarn아카이브에서 최신 파일만 추출하는 옵션과 기본값은 이 작업이 시작되기 오래 전인 1985년부터 적용 됩니다 gtar.

starLinux는 느린 파일 시스템을 구현하므로 해당 옵션의 매뉴얼 페이지를 확인하는 것이 좋습니다 -no-fsync. 이를 통해 star사용 중인 모드만큼 안전하지 않은 모드로 전환할 수 있습니다 gtar.

관련 정보