Daftar isi tarball dalam format pohon

4

Per jawaban di sini saya bisa daftar isi tarball saya dalam lsformat. Namun, saya ingin membuat daftar mereka dalam treeformat, yaitu sesuatu seperti yang terakhir daripada yang sebelumnya:

Dengan tar:

$ tar -tf foo.tar 
foo/
foo/baz/
foo/baz/qux/
foo/baz/qux/hisfile.txt
foo/bar/
foo/bar/myfile.txt
foo/bar/yourfile.txt

Dengan tree:

$ tree foo
foo
├── bar
│   ├── myfile.txt
│   └── yourfile.txt
└── baz
    └── qux
        └── hisfile.txt

Apakah mungkin untuk melakukan ini tanpa mengekstraksi tarball? Saya lebih suka harus menghindari penggalian tarball karena ukurannya.

Vasu
sumber

Jawaban:

7

Beberapa skrip ada untuk mengonversi daftar nama jalur menjadi bentuk pohon:

Semua skrip ini bekerja dengan tar -tf …output; sebagai contoh:

$ tar -tf foo.tar | treeify
foo
 ├─bar
 │ ├─file.txt
 │ └─file Anda.txt
 └─baz
    └─qux
       └─hisfile.txt

Juga:

$ bsdtar -tf foo.zip | treeify
$ find /dir -size +5 | treeify
$ git ls-files       | treeify
$ pacman -Qql foopkg | treeify
$ unrar vb foo.rar   | treeify
$ zipinfo -1 foo.zip | treeify
$ gsettings list-schemas   | treeify -s. -f
$ qdbus | sed -n "s/^ //p" | treeify -s. -f
$ ldns-walk netbsd.org | awk '{print $1}' | treeify -s. -f -R
grawity
sumber
1
Apakah skrip ini juga berfungsi .zip?
pun
1
@ The_IT_Guy_You_Don't_Like: Dengan zipinfo -1 foo.zipatau bsdtar -tf foo.zip, tentu saja.
grawity