Apakah ada perintah linux yang bisa saya panggil dari skrip Bash yang akan mencetak struktur direktori dalam bentuk pohon, misalnya,
folder1
a.txt
b.txt
folder2
folder3
linux
command-line
pengguna243655
sumber
sumber
find
. Ataufind . -not -path '*/\.*'
untuk menyembunyikan file dan folder yang dimulai dengan.
. Jika Anda ingin memiliki keluaran dengan spasi, seperti dalam pertanyaan, gunakan dengan skrip "find prettifier" ini:find . -not -path '*/\.*' | python -c "import sys as s;s.a=[];[setattr(s,'a',list(filter(lambda p: c.startswith(p+'/'),s.a)))or (s.stdout.write(' '*len(s.a)+c[len(s.a[-1])+1 if s.a else 0:])or True) and s.a.append(c[:-1]) for c in s.stdin]"
Jawaban:
Apakah ini yang Anda cari pohon ? Itu harus di sebagian besar distribusi (mungkin sebagai instalasi opsional).
sampel diambil dari halaman web pengelola.
Anda dapat menambahkan opsi di
-L #
mana#
diganti dengan angka, untuk menentukan kedalaman rekursi maksimum.Hapus
-d
juga untuk menampilkan file.sumber
-d
untuk menampilkan file!brew install tree
apt-cyg install tree
(dengan asumsi Anda telah menginstal apt-cyg)apt-get install tree
akan menginstalnya.Anda bisa menggunakan ini:
Ini akan menampilkan representasi grafis dari sub-direktori saat ini tanpa file dalam beberapa detik , misalnya dalam /var/cache/:
Sumber
sumber
ls -R | grep ":$" | sed -e 's/:$//' -e 's/[^-][^\/]*\// /g' -e 's/^/ /'
.git
?find . | sed -e "s/[^-][^\/]*\// |/g" -e "s/|\([^ ]\)/|-\1/"
Untuk menambahkan solusi Hassou ke .bashrc Anda, coba:
sumber
alias lst='ls -R | grep ":$" | sed -e '"'"'s/:$//'"'"' -e '"'"'s/[^-][^\/]*\//--/g'"'"' -e '"'"'s/^/ /'"'"' -e '"'"'s/-/|/'"'"''
Perintah ini berfungsi untuk menampilkan folder dan file .
Contoh output:
Sumber: Komentar dari @javasheriff di sini . Ini terendam sebagai komentar dan mempostingnya sebagai jawaban membantu pengguna menemukannya dengan mudah.
sumber
find . |grep -vE 'pyc|swp|__init' | sed -e "s/[^-][^\/]*\// |/g" -e "s/|\([^ ]\)/|-\1/"
bekerja dengan baikSaya menyiapkan output dari jawaban @ Hassou dengan:
Ini seperti output dari
tree
sekarang:Anda juga dapat membuat alias:
BTW,
tree
tidak tersedia di beberapa lingkungan, seperti MinGW. Jadi alternatifnya sangat membantu.sumber
Anda juga dapat menggunakan kombinasi perintah find dan awk untuk mencetak pohon direktori. Untuk detailnya, silakan merujuk ke " Cara mencetak struktur direktori multilevel tree menggunakan perintah linux find and awk gabungan "
sumber