Menurut halaman bash man:
bash memindai setiap kata untuk karakter *,?, dan [. Jika salah satu karakter ini muncul, maka kata tersebut dianggap sebagai pola, dan diganti dengan daftar nama file yang diurutkan berdasarkan abjad yang cocok dengan pola tersebut.
dan dari simpul info untuk ls
Program `ls 'mencantumkan informasi tentang file (jenis apa pun, termasuk direktori). Opsi dan argumen file dapat dicampur secara sewenang-wenang, seperti biasa.
Untuk argumen baris perintah non-opsi yang merupakan direktori, secara default 'ls' mencantumkan isi direktori, tidak secara rekursif, dan menghilangkan file dengan nama yang diawali dengan '.'. Untuk argumen non-opsi lainnya, secara default `ls 'hanya mencantumkan nama file. Jika tidak ada argumen non-opsi yang ditentukan, 'ls' daftar isi direktori saat ini.
jadi ketika Anda memberi ls d*
, d * diperluas ke daftar semua nama file / direktori yang diurutkan mulai dengan d. Jadi perintahmu menjadi
ls dump
dan karena dump adalah nama direktori sehingga Anda mendapatkan daftar semua file di direktori "dump 'tetapi ketika Anda memberi ls D*
, D * diperluas ke" Desktop Documents Downloads Dropbox ", sehingga perintah menjadi
ls Desktop Documents Downloads Dropbox
dan karena semua ini adalah direktori, Anda mendapatkan daftar file dalam direktori individual. Jika ada file yang dimulai dengan D di direktori saat ini, file tersebut akan terdaftar secara terpisah.