![ls -d 没有按照我指示执行](https://linux22.com/image/1130552/ls%20-d%20%E6%B2%A1%E6%9C%89%E6%8C%89%E7%85%A7%E6%88%91%E6%8C%87%E7%A4%BA%E6%89%A7%E8%A1%8C.png)
Ubuntu 14.04 LTS 直连机器,没有双启动或任何东西。
我只想要~/scratch
一个目录列表。
tree -dL 1
知道了!
man ls
说:
-d List directories only instead of their contents.
info ls
说:
-d List just the names of directories...
显然,这并没有按照我所要求的那样做。我不明白什么?
答案1
ls -d
将列出目录条目但不列出其内容,它不用于仅显示目录内的目录条目。
举个例子你就会明白:
$ tree
.
├── egg
├── spam
└── test
├── new
└── old
$ ls *
egg spam
test:
new old
$ ls -d *
egg spam test
正如您所见,-d
只是确保目录的内容test
不会被显示。
正如已经显示的这个答案,若要仅显示目录条目,可以使用*/
。/
后面的命令*
确保仅显示目录:
$ ls -d */
test/
这类似于:
$ for i in *; do [[ -d $i ]] && echo "$i"; done
test
答案2
尝试一下这个: ls -d */
它将列出当前目录中的目录