Linux
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
.
您可以使用這樣的組合:
tar -df archive.tar | awk -F: '{print $1}' | sort -u
tar -df
獲取更改的文件(你已經有了)
awk -F: '{print $1}'
僅列印第一個“列”
sort -u
刪除重複項編輯:在@roaima 的輸入之後,如果您需要匹配名稱中包含冒號(或空格)的文件,您可以
awk
用這個替換部分sed 's/\(.*\):.*/\1/'
這將有效地僅顯示文件名,直到最後一次出現冒號(位於第一列的末尾)