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 adalah keharusan. Salah satu keterampilan dasar paling kritis 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 dengan tepat kapan menggunakan alat mana — termasuk dalam lingkungan scripting dan server produksi.
Mengapa Listing Direktori Penting
Di komputer pribadi, Anda mungkin sesekali menjelajahi folder "Documents" atau "Downloads" melalui antarmuka grafis. Namun, di server Linux, direktori adalah inti 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 cron jobs.
Jika Anda tidak dapat listing direktori secara efisien, Anda akan selalu merasa tersesat — terutama di lingkungan VPS Hosting jarak jauh di mana tidak ada pengelola file grafis untuk digunakan sebagai cadangan.
Method 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 ada alasan yang bagus: cepat, mudah dibaca manusia, dan tersedia di setiap sistem mirip Unix.
Penggunaan dasar
lsIni mencantumkan 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 untuk mencantumkan 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 skrip.
Metode 2: Perintah find — Powerful dan Reliable
Perintah find adalah pilihan profesional untuk menghitung direktori. Tidak seperti ls, dirancang untuk penggunaan programatik, mendukung traversal rekursif, menyertakan direktori tersembunyi secara default, dan berperilaku konsisten di berbagai distribusi Linux dan locale.
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 mencantumkan setiap direktori di setiap tingkat kedalaman di bawah lokasi Anda saat ini.
Daftar hanya direktori tingkat atas (metode portabel)
find . -mindepth 1 -maxdepth 1 -type d-mindepth 1— Mengecualikan direktori saat ini sendiri (.) dari hasil.-maxdepth 1— Mencegah rekursi melampaui anak-anak langsung.
Ini adalah cara paling portabel dan andal untuk mencantumkan hanya subdirektori langsung dari folder saat ini, dan berfungsi identik pada sistem GNU/Linux, macOS, dan BSD.
Alternatif untuk sistem GNU/Linux
Pada sebagian besar distribusi Linux modern — termasuk yang berjalan di Dedicated Servers — Anda juga dapat menggunakan:
find . -maxdepth 1 -type dPerhatikan bahwa ini akan menyertakan . sendiri dalam output. Gunakan -mindepth 1 bersama dengan -maxdepth 1 untuk mengecualikannya dengan bersih.
Sertakan direktori tersembunyi
Karena find tidak mengandalkan shell glob, secara otomatis menyertakan direktori tersembunyi:
find . -mindepth 1 -maxdepth 1 -type dIni akan menampilkan .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 locale 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 disertakan, hasil rekursif, atau output yang andal untuk skrip dan otomasi.
Metode 3: Perintah tree — Peta Direktori Visual
Perintah tree merender peta hierarki visual dari struktur direktori Anda. 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 hanya direktori.-L 2— Batasi tampilan hingga 2 level kedalaman.
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 familiar untuk pertama kalinya.
Method 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 listing panjang dari ls untuk menampilkan hanya baris yang dimulai dengan d — yang menunjukkan direktori. Meskipun ini terlihat cerdas, ini pada dasarnya rapuh dan harus dihindari dalam konteks apa pun yang serius:
| Masalah | Penjelasan |
|---|---|
| Sensitivitas lokal | Beberapa lokal atau konfigurasi terminal mengubah format output dari ls -l, memecahkan pola grep. |
| Kode warna | Jika ls mengeluarkan kode escape ANSI warna, pola ^d mungkin gagal untuk cocok. |
| Direktori tersembunyi | Tidak ditampilkan, sama seperti dengan ls -d */. |
| Tautan simbolis | Symlink yang menunjuk ke direktori ditampilkan sebagai l, bukan d, jadi mereka secara diam-diam dikecualikan. |
| Keandalan skrip | Penguraian output ls dalam skrip secara eksplisit tidak disarankan dalam praktik terbaik skrip 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 direktori yang terlihat) | ls -d */ |
| Daftar terperinci dengan izin | ls -ld */ |
| Direktori 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 live — baik itu akun Shared Web Hosting atau VPS yang sepenuhnya dikelola — ingatlah prinsip-prinsip berikut:
- Selalu periksa direktori tersembunyi selama audit keamanan. Direktori seperti
.ssh/,.git/,.env/, dan.config/sering kali berisi kredensial sensitif, kunci, dan file konfigurasi. Gunakanfinddengan-mindepth 1untuk memastikan mereka muncul dalam output Anda.
- Gunakan
finddi semua skrip, jangan pernahls. Parsing outputlsadalah anti-pattern yang terkenal dalam shell scripting. Perintahfindbersifat deterministik, independen dari locale, dan menangani kasus edge dengan elegan.
- 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 onboarding. Saat Anda pertama kali SSH ke server yang tidak familiar,tree -d -L 2cepat dari/var/www/atau/home/memberi Anda gambaran struktural instan.
- Batasi izin dengan hati-hati. Mengetahui direktori apa yang ada hanyalah sebagian dari gambaran. Audit izin direktori secara teratur dengan
ls -ld */untuk menangkap direktori yang dapat ditulis oleh siapa saja yang salah konfigurasi.
Contoh Praktis: Mengaudit Direktori Web Server
Misalkan Anda baru saja menerapkan aplikasi baru di VPS Linux. Berikut adalah alur kerja praktis yang menggabungkan perintah yang dibahas dalam panduan ini:
# Navigate to the web root
cd /var/www/
# Quick visual check of top-level directories
ls -ld */
# Full audit including hidden directories
find . -mindepth 1 -maxdepth 1 -type d
# Visual map of the project structure (2 levels deep)
tree -d -L 2
# Check disk usage per directory
find . -mindepth 1 -maxdepth 1 -type d -exec du -sh {} ;Alur kerja ini memakan waktu kurang dari satu menit dan memberikan Anda gambaran lengkap tentang tata letak direktori server web Anda, izin, dan konsumsi disk — pengetahuan penting bagi administrator mana pun yang mengelola VPS dengan cPanel atau stack Linux kustom.
Kesimpulan
Listing direktori adalah salah satu keterampilan Linux paling fundamental, namun metode yang Anda pilih lebih penting daripada yang disadari sebagian besar pemula. Berikut adalah ringkasan poin-poin kunci:
ls -d */sempurna untuk pemeriksaan cepat dan interaktif — tetapi mengabaikan direktori tersembunyi dan tidak cocok untuk scripting.find . -mindepth 1 -maxdepth 1 -type dadalah standar emas untuk listing direktori yang andal, portabel, dan aman untuk script yang mencakup entri tersembunyi.tree -dsangat berharga untuk memvisualisasikan struktur kompleks dan mengkomunikasikannya kepada orang lain.- Hindari
ls -l | grep "^d"— ini rapuh, bergantung pada locale, dan tidak memiliki keuntungan dibandingkanfind.
Baik Anda mengelola konfigurasi di lingkungan Dedicated Servers, menerapkan aplikasi web, atau sekadar menjelajahi mesin Linux baru untuk pertama kalinya, menguasai perintah-perintah ini akan menghemat waktu Anda, mencegah kesalahan yang mahal, dan memberi Anda kepercayaan diri untuk menavigasi sistem file apa pun dengan presisi.
Baris perintah bukan penghalang — ini adalah kekuatan super. Dan dimulai dengan mengetahui dengan tepat di mana Anda berada dan apa yang mengelilingi Anda.
untuk semua layanan hosting