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にあります。