Pipe
tar 和 tree 命令的管道?
我想查看一個大壓縮文件的樹(特別是只有二級目錄),所以我使用了以下命令:
tar -tf tarfile | tree -L 2
但它輸出我所在目錄的樹,而不是壓縮文件的樹。其他命令可以正常工作,例如,如果我這樣做:
tar -tf tarfile | less
它可以讓我正確探索 tar 文件。我做錯了什麼還是我不能
tree
像其他命令一樣使用 pipping?如果沒有,有沒有其他方法可以只查看壓縮文件的二級目錄之前的文件?
由於
tree
不讀取標準輸入,而是遍歷實際目錄結構(無論是目前目錄還是指定目錄),您需要對 tar 文件的目錄進行後處理。如果 tar 文件是使用完整/絕對路徑名創建的,則需要調整範圍以找到所需的目錄深度。一種選擇是
awk
:tar -tf tarfile | awk -F/ 'NF == 3'
另一個是
cut
(唯一排序,以便超過級別 2 的子目錄不會導致再次報告父目錄):tar -tf tarfile | cut -d/ -f1-3 | sort -u