Fungsi Zsh untuk Menampilkan Pohon File
Saat menjelajahi direktori di command line, sering kali berguna untuk melihat struktur direktori dan subdirektori dalam format "pohon" (tree). Meskipun ada banyak alat yang tersedia, seperti tree, terkadang Anda menginginkan solusi kustom sederhana yang terintegrasi langsung ke dalam shell Anda. Dalam tulisan ini, kami akan membahas cara membuat fungsi Zsh sederhana untuk menampilkan struktur direktori dalam format pohon.
Membuat Fungsi Zsh untuk Menampilkan Pohon File
Jika Anda menggunakan Zsh sebagai shell default, menambahkan fungsi kustom ke file .zshrc dapat membantu Anda membuat perintah yang cepat dan efisien untuk melihat direktori dalam struktur pohon. Fungsi ini bekerja mirip dengan perintah tree yang populer, tetapi dibangun menggunakan ls dan sed, sehingga mudah diintegrasikan langsung ke lingkungan Zsh Anda.
Langkah 1: Tambahkan Fungsi lst() ke .zshrc
Langkah pertama adalah mendefinisikan fungsi lst() di dalam file .zshrc Anda. Fungsi ini menerima argumen opsional, yang dapat berupa path direktori apa pun, dan menampilkan pohon direktori mulai dari titik tersebut. Jika tidak ada direktori yang ditentukan, fungsi ini secara default menggunakan direktori saat ini.
Buka file .zshrc Anda menggunakan editor teks pilihan Anda dan tambahkan fungsi berikut:
lst() {
if [ "$1" != "" ] # or better, if [ -n "$1" ]
then
ls -R $1 | grep ":$" | sed -e 's/:$//' -e 's/[^-][^\/]*\//--/g' -e 's/^/ /' -e 's/-/|/'
else
ls -R | grep ":$" | sed -e 's/:$//' -e 's/[^-][^\/]*\//--/g' -e 's/^/ /' -e 's/-/|/'
fi
}
Langkah 2: Muat Ulang Konfigurasi Zsh Anda
Setelah menambahkan fungsi tersebut, Anda perlu memuat ulang file .zshrc agar perubahan berlaku. Anda dapat melakukannya dengan menjalankan perintah berikut di terminal:
sh
source ~/.zshrc
Langkah 3: Menggunakan Fungsi lst()
Setelah menambahkan fungsi ke .zshrc, Anda dapat langsung menggunakannya. Fungsi lst() memungkinkan Anda menampilkan semua subdirektori dalam direktori tertentu dalam format pohon. Berikut cara menggunakannya:
Untuk menampilkan subdirektori dari sebuah folder (misalnya, spec), jalankan:
sh
lst spec
Perintah ini akan menghasilkan struktur seperti pohon yang menampilkan semua subdirektori di dalam folder spec.
Jika Anda ingin melihat struktur pohon dari direktori saat ini, cukup jalankan:
sh
lst
Fungsi lst() akan menampilkan struktur folder, sehingga Anda lebih mudah memahami hierarki direktori Anda.
Contoh Output
Misalkan Anda memiliki struktur direktori berikut:
bash
spec/
├── controllers/
│ └── users/
├── models/
└── views/
Menjalankan perintah lst spec akan menghasilkan output yang mirip dengan berikut ini:
css
spec
|--controllers
| |--users
|--models
|--views
Struktur pohon sederhana ini memudahkan Anda memvisualisasikan hubungan antara direktori dan subdirektori.
Cara Kerjanya
Mari kita uraikan fungsi ini langkah demi langkah:
- ls -R $1: Perintah ls -R menampilkan isi direktori secara rekursif (atau direktori saat ini jika tidak ada argumen yang diberikan).
- grep ":$": Menyaring hasil agar hanya menampilkan nama direktori (baris yang diakhiri dengan :).
- Perintah sed:
- 's/:$//': Menghapus titik dua di akhir setiap nama direktori.
- 's/[^-][^/]*//--/g': Mengganti garis miring (/) dengan tanda hubung (--), sehingga struktur diubah menjadi format seperti pohon.
- 's/^/ /': Menambahkan indentasi pada pohon direktori.
- 's/-/|/': Mengganti tanda hubung dengan garis vertikal (|), sehingga format pohon semakin jelas.
Langkah 4: Sesuaikan Fungsi lst()
Anda dapat dengan mudah menyesuaikan fungsi lst() sesuai kebutuhan. Misalnya, Anda dapat mengubah format struktur pohon atau menambahkan opsi tambahan untuk menampilkan file. Jika Anda sering perlu menampilkan file sekaligus direktori, Anda dapat memodifikasi fungsi ini agar menyertakan file dengan menghapus filter grep yang hanya menampilkan direktori.
Alternatif: Menggunakan Perintah tree
Jika Anda lebih suka, Anda dapat menggunakan perintah tree, yang dirancang khusus untuk menampilkan struktur direktori. tree adalah utilitas yang tersedia luas dan dapat diinstal di sebagian besar sistem mirip Unix. Untuk menginstal tree, gunakan salah satu perintah berikut sesuai sistem Anda:
Di Ubuntu atau sistem berbasis Debian:
sh
sudo apt-get install tree
Di macOS:
sh
brew install tree
Setelah terinstal, Anda dapat menggunakan perintah tree untuk menghasilkan output serupa:
sh
tree spec
Perintah tree menyediakan lebih banyak fitur bawaan, seperti kemampuan menampilkan ukuran file, izin, dan lainnya. Namun, jika Anda lebih suka sesuatu yang sederhana atau jika tree tidak tersedia, fungsi lst() adalah alternatif ringan yang sangat baik.
Kesimpulan
Fungsi Zsh yang telah kami buat menyediakan cara yang sederhana dan efisien untuk menampilkan struktur direktori dalam format pohon. Dengan menambahkan fungsi lst() ke file .zshrc Anda, Anda dapat dengan cepat memvisualisasikan subdirektori dari folder mana pun di sistem Anda. Hal ini sangat berguna untuk menjelajahi struktur direktori yang kompleks dan memahami hierarki file serta folder dalam proyek Anda.
Jika Anda membutuhkan fungsionalitas lebih, pertimbangkan untuk menggunakan perintah tree yang memiliki fitur lebih canggih. Namun, untuk solusi kustom yang ringan dan terintegrasi langsung ke shell Zsh Anda, fungsi lst() adalah pilihan yang tepat.
Pertanyaan Umum (FAQ)
1. Untuk apa fungsi lst() digunakan?
Fungsi lst() adalah fungsi Zsh kustom yang menampilkan struktur direktori dalam format pohon. Fungsi ini menggunakan ls dan sed untuk memformat output, sehingga Anda mudah memvisualisasikan hierarki folder langsung di terminal.
2. Bagaimana cara menambahkan fungsi lst() ke konfigurasi Zsh saya?
Anda dapat menambahkan fungsi lst() dengan mengedit file .zshrc dan menempelkan definisi fungsi ke dalam file tersebut. Setelah itu, jalankan source ~/.zshrc untuk memuat ulang konfigurasi dan membuat fungsi tersebut tersedia.
3. Apakah saya dapat menyesuaikan output fungsi lst()?
Ya, Anda dapat menyesuaikan fungsi ini dengan memodifikasi perintah sed yang memformat output. Anda dapat mengubah struktur pohon, menambahkan detail lain, atau bahkan menyertakan file dalam daftar.
4. Apa alternatif selain menggunakan fungsi lst()?
Perintah tree adalah utilitas yang tersedia luas untuk menampilkan struktur direktori dalam format pohon. Perintah ini menawarkan lebih banyak fitur daripada fungsi lst() dan dapat diinstal di sebagian besar sistem mirip Unix.
5. Apakah saya dapat menggunakan fungsi lst() di shell selain Zsh?
Fungsi lst() ditulis untuk Zsh, tetapi dapat dengan mudah diadaptasi untuk shell lain seperti Bash dengan menambahkannya ke file konfigurasi yang sesuai (.bashrc untuk Bash).
Dengan mengintegrasikan fungsi lst() ke dalam alur kerja Zsh Anda, Anda dapat meningkatkan pengalaman di command line dan membuat navigasi direktori jauh lebih mudah.