Cara Membuat Daftar Direktori di Linux: Panduan Lengkap untuk Pemula dan Sysadmin
Bekerja di Linux sering terasa seperti menavigasi perpustakaan yang luas. Alih-alih rak, Anda memiliki direktori (folder), dan alih-alih buku, Anda memiliki file. Baik Anda seorang administrator sistem berpengalaman, pengembang, atau pemula yang penasaran baru memulai, menguasai dasar-dasar navigasi filesystem tidak dapat ditawar. Salah satu keterampilan dasar paling penting adalah mengetahui cara membuat daftar direktori secara efisien dan akurat.
Panduan ini memandu Anda melalui setiap metode praktis untuk membuat daftar direktori di Linux, menjelaskan kekuatan dan keterbatasan setiap pendekatan, dan menunjukkan kepada Anda kapan tepatnya menggunakan alat mana — termasuk dalam lingkungan scripting dan server produksi.
Mengapa Membuat Daftar Direktori Penting
Di komputer pribadi, Anda mungkin sesekali menjelajahi folder “Documents” atau “Downloads” melalui antarmuka grafis. Namun di server Linux, direktori adalah jantung dari hampir setiap tugas administratif yang akan Anda lakukan:
- Administrasi sistem: Dengan cepat audit apa yang ada di
/etc/,/var/log/, atau/usr/local/bin/. - Web hosting: Temukan dan kelola folder proyek di bawah
/var/www/atau/home/. - Pengembangan perangkat lunak: Identifikasi kontrol versi dan direktori lingkungan seperti
.git/atau.venv/. - Audit keamanan: Konfirmasi dengan tepat apa yang diinstal, dikonfigurasi, dan berjalan di sistem.
- Otomasi dan scripting: Secara andal enumerasi direktori untuk digunakan dalam skrip shell dan pekerjaan cron.
Jika Anda tidak dapat membuat daftar direktori secara efisien, Anda akan selalu merasa tersesat — terutama di lingkungan VPS Hosting jarak jauh di mana tidak ada pengelola file grafis untuk kembali.
Metode 1: Perintah ls — Cepat dan Sederhana
Perintah ls adalah alat default untuk menampilkan isi direktori. Ini adalah perintah pertama yang dipelajari sebagian besar pengguna Linux, dan dengan alasan yang baik: cepat, mudah dibaca manusia, dan tersedia di setiap sistem mirip Unix.
Penggunaan dasar
lsIni membuat daftar semua file dan direktori yang tidak tersembunyi di direktori kerja saat ini.
Daftar hanya direktori
ls -d */Berikut adalah apa yang dilakukan setiap bagian:
-d— Memberitahulsuntuk tidak turun ke subdirektori, tetapi membuat daftar entri direktori itu sendiri.*/— Pola glob shell yang cocok dengan semua direktori (dan tautan simbolis ke direktori) di folder saat ini.
Daftar direktori dengan informasi terperinci
ls -ld */Menambahkan -l memberi Anda format daftar panjang yang mencakup:
- Izin file
- Jumlah tautan keras
- Pemilik dan grup
- Ukuran file
- Stempel waktu modifikasi terakhir
Contoh output:
drwxr-xr-x 3 root root 4096 Jun 10 14:22 backups/
drwxr-xr-x 5 www-data www-data 4096 Jun 12 09:15 html/
drwxr-xr-x 2 deploy deploy 4096 Jun 11 18:03 logs/Keterbatasan: Direktori tersembunyi dikecualikan
Glob */ tidak cocok dengan direktori tersembunyi — yang namanya dimulai dengan titik (.), seperti .git/, .ssh/, atau .config/. Ini adalah peringatan penting, terutama di lingkungan yang sensitif terhadap keamanan.
Kapan menggunakan ls -d */: Pemeriksaan cepat dan interaktif di mana Anda hanya memerlukan direktori yang terlihat dan tidak memerlukan keandalan scripting.
Metode 2: Perintah find — Kuat dan Andal
Perintah find adalah pilihan profesional untuk menghitung direktori. Tidak seperti ls, dirancang untuk penggunaan pemrograman, mendukung traversal rekursif, menyertakan direktori tersembunyi secara default, dan berperilaku konsisten di seluruh distribusi Linux dan lokal yang berbeda.
Daftar semua direktori secara rekursif
find . -type d.— Mulai dari direktori saat ini.-type d— Cocokkan hanya entri direktori (bukan file, symlink, atau tipe lainnya).
Ini akan secara rekursif membuat daftar setiap direktori di setiap tingkat kedalaman di bawah lokasi saat ini Anda.
Daftar hanya direktori tingkat atas (metode portabel)
find . -mindepth 1 -maxdepth 1 -type d-mindepth 1— Mengecualikan direktori saat ini itu sendiri (.) dari hasil.-maxdepth 1— Mencegah rekursi di luar anak-anak langsung.
Ini adalah cara paling portabel dan andal untuk membuat daftar hanya subdirektori langsung dari folder saat ini, dan berfungsi identik di sistem GNU/Linux, macOS, dan BSD.
Alternatif untuk sistem GNU/Linux
Di sebagian besar distribusi Linux modern — termasuk yang berjalan di Server Dedicated — Anda juga dapat menggunakan:
find . -maxdepth 1 -type dPerhatikan bahwa ini akan menyertakan . itu sendiri dalam output. Gunakan -mindepth 1 bersama dengan -maxdepth 1 untuk mengecualikannya dengan bersih.
Sertakan direktori tersembunyi
Karena find tidak bergantung pada glob shell, secara otomatis menyertakan direktori tersembunyi:
find . -mindepth 1 -maxdepth 1 -type dIni akan menunjukkan .git/, .ssh/, .config/, dan direktori lain yang diawali dengan titik bersama dengan yang terlihat.
Gunakan find dalam skrip
find adalah alat yang benar untuk skrip shell karena:
- Menangani nama file dengan spasi dan karakter khusus dengan aman.
- Tidak terpengaruh oleh pengaturan lokal atau konfigurasi warna terminal.
- Menghasilkan output yang konsisten dan dapat diurai.
Contoh: Loop di atas semua direktori tingkat atas
find . -mindepth 1 -maxdepth 1 -type d | while read -r dir; do
echo "Processing: $dir"
doneKapan menggunakan find: Setiap kali Anda memerlukan direktori tersembunyi yang disertakan, hasil rekursif, atau output yang andal untuk scripting dan otomasi.
Metode 3: Perintah tree — Peta Direktori Visual
Perintah tree merender peta direktori hierarki visual. Ini tidak diinstal secara default di semua distribusi tetapi sangat berguna untuk dokumentasi, onboarding, dan memahami tata letak proyek yang kompleks.
Instal tree
Debian/Ubuntu:
sudo apt install treeCentOS/RHEL/AlmaLinux:
sudo yum install treeDaftar hanya direktori (tanpa file)
tree -dBatasi kedalaman untuk menghindari output yang berlebihan
tree -d -L 2-d— Tampilkan direktori saja.-L 2— Batasi tampilan hingga 2 level dalam.
Contoh output:
.
├── backups
│ └── daily
├── html
│ ├── assets
│ └── uploads
└── logsSertakan direktori tersembunyi
tree -d -aKapan menggunakan tree: Memvisualisasikan struktur proyek, menulis dokumentasi, atau menjelajahi tata letak server yang tidak dikenal untuk pertama kalinya.
Metode 4: Mengapa Anda Harus Menghindari ls -l | grep "^d"
Anda akan sesekali menemukan pola ini yang disarankan secara online:
ls -l | grep "^d"Idenya adalah untuk memfilter output daftar panjang ls untuk menampilkan hanya baris yang dimulai dengan d — yang menunjukkan direktori. Meskipun ini tampak cerdas, pada dasarnya rapuh dan harus dihindari dalam konteks apa pun yang serius:
| Masalah | Penjelasan |
|---|---|
| Sensitivitas lokal | Beberapa lokal atau konfigurasi terminal mengubah format output ls -l, memecahkan pola grep. |
| Kode warna | Jika ls menampilkan kode escape ANSI warna, pola ^d mungkin gagal cocok. |
| Direktori tersembunyi | Tidak ditampilkan, sama seperti dengan ls -d */. |
| Tautan simbolis | Symlink yang menunjuk ke direktori menampilkan sebagai l, bukan d, jadi mereka secara diam-diam dikecualikan. |
| Keandalan scripting | Mengurai output ls dalam skrip secara eksplisit tidak disarankan dalam praktik terbaik scripting shell. |
Gunakan find sebagai gantinya. Ini dirancang khusus untuk tugas ini dan menghindari semua jebakan di atas.
Referensi Cepat: Memilih Metode yang Tepat
| Tujuan | Perintah Terbaik |
|---|---|
| Pemeriksaan interaktif cepat (hanya dir yang terlihat) | ls -d */ |
| Daftar terperinci dengan izin | ls -ld */ |
| Dir tingkat atas termasuk tersembunyi | find . -mindepth 1 -maxdepth 1 -type d |
| Semua direktori secara rekursif | find . -type d |
| Struktur pohon visual | tree -d |
| Gunakan dalam skrip shell | find . -mindepth 1 -maxdepth 1 -type d |
Praktik Terbaik untuk Lingkungan Server Produksi
Saat bekerja di server langsung — baik itu akun Shared Web Hosting atau VPS yang sepenuhnya dikelola — ingat prinsip-prinsip ini:
- Selalu periksa direktori tersembunyi selama audit keamanan. Direktori seperti
.ssh/,.git/,.env/, dan.config/sering berisi kredensial sensitif, kunci, dan file konfigurasi. Gunakanfinddengan-mindepth 1untuk memastikan mereka muncul dalam output Anda.
- Gunakan
finddalam semua skrip, jangan pernahls. Mengurai outputlsadalah anti-pola yang terkenal dalam scripting shell. Perintahfindadalah deterministik, independen lokal, dan menangani kasus tepi dengan anggun.
- Gabungkan
finddengan-execuntuk operasi massal. Misalnya, untuk membuat daftar ukuran direktori:
find . -mindepth 1 -maxdepth 1 -type d -exec du -sh {} ;- Gunakan
tree -d -L 2saat on
