tar diff: 파일 이름만 가져옴

tar diff: 파일 이름만 가져옴

GNU tar를 사용하면 tar df books.tar.bz2다음과 같은 자세한 결과를 얻을 수 있습니다.

books/a.pdf: Mod time differs
books/a.pdf: Size differs
books/b.pdf: Mod time differs
books/b.pdf: Size differs

다음 출력을 얻는 편리한 방법이 있습니까?

a.pdf b.pdf

이유는 간단합니다. tar df ...예를 들어 gtar cfvj books-updated.tar.bz2 a.pdf b.pdf.

답변1

다음과 같은 조합을 사용할 수 있습니다.

tar -df archive.tar | awk -F: '{print $1}' | sort -u

tar -df변경된 파일 가져오기(이미 가지고 있음)

awk -F: '{print $1}'첫 번째 "열"만 인쇄

sort -u중복 제거

편집: @roaima의 입력에 따라 이름에 콜론(또는 공백)이 포함된 파일을 일치시켜야 하는 경우 awk해당 부분을 다음으로 바꿀 수 있습니다.

sed 's/\(.*\):.*/\1/'

이렇게 하면 콜론이 마지막으로 나타날 때까지(첫 번째 열의 끝) 파일 이름만 표시됩니다.

답변2

아직 봤어 star?

당신이 사용할 수있는:

star -diff -tpath < archive.tar

이 옵션은 -tpath차이를 만듭니다.

star의 최신 버전은 schilytools에 있습니다.

관련 정보