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에 있습니다.