
我正在努力理解 ls -d 的工作原理。我已經閱讀了其他 ls -d 問題,但沒有一個問為什麼ls -d *
與 ls -d 的工作方式不同ls -d */
。為什麼末尾的分隔符號如此重要?
ls *
並ls */
以同樣的方式行事,所以我期望ls -d *
並ls -d */
以同樣的方式工作。
相反,
ls -d *
就像執行 一樣列出當前目錄中的所有文件ls
,而ls -d */
列出當前目錄中的目錄。為什麼會這樣呢?
答案1
答案2
答案是:結尾/
強制 ls 只看目錄。
請注意,行為是一致的(有和沒有-d
)。
一個小測試:
mkdir /tmp/test
touch /tmp/test/a
mkdir /tmp/test/b
touch /tmp/test/b/c
cd /tmp/test
然後執行ls *
,ls */
您會注意到其中的差異。