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.
ls p*
dan itu muncul file karena ada danls P*
menunjukkan yang Gambar Umum folder karena tidak ada file yang dimulai dengan P . Dan ketika saya membuat direktori bernama poo , muncul dils p*
ls d * dan D * baik daftar file dan folder yang cocok masing-masing d * dan D *, perilakunya sama, pasti ada kesalahan pada tes Anda.
Jika Anda hanya ingin mencantumkan nama folder dan bukan isi folder, Anda perlu menggunakan "-d":
sumber
Seperti yang disarankan di atas,
-d
opsi adalah cara untuk pergi. Menambahkanke
~/.bashrc
file saya berfungsi dengan baik untuk saya.sumber
ld - The GNU linker
, yang akan membuat OP tidak dapat menyusun dan menautkan program. Gunakanalias lsd='ls -d'
sebagai gantinya. Sebelum aliasing sesuatu sepertifoo
biasa dilakukantype foo
untuk melihat apakahfoo
sudah digunakan sebagai nama untuk sesuatu, dan memutuskan apakah kenyamanan alias menimpa hilangnya akses ke sebelumnyafoo