我正在努力理解 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 */
您会注意到其中的差异。