该命令列出当前路径下的目录:
ls -d */
模式*/到底做什么?
我们如何在上面的命令中给出绝对路径(例如ls -d /home/alice/Documents),只列出该路径下的目录?
该命令列出当前路径下的目录:
ls -d */
模式*/到底做什么?
我们如何在上面的命令中给出绝对路径(例如ls -d /home/alice/Documents),只列出该路径下的目录?
当前回答
如果不需要列出隐藏目录,我提供:
ls -l | grep "^d" | awk -F" " '{print $9}'
如果需要列出隐藏目录,请使用:
ls -Al | grep "^d" | awk -F" " '{print $9}'
Or
find -maxdepth 1 -type d | awk -F"./" '{print $2}'
其他回答
如果你想知道为什么'ls -d */'的输出会给你两个斜杠,比如:
[prompt]$ ls -d */
app// cgi-bin// lib// pub//
这可能是因为您的shell或会话配置文件将ls命令别名为包含-F标志的ls版本。该标志将一个字符附加到每个输出名称(这不是普通文件),表明它是什么类型的文件。因此,一个斜杠来自匹配模式'*/',另一个斜杠是附加的类型指示符。
要解决这个问题,当然可以为ls定义一个不同的别名。然而,为了暂时不调用别名,你可以在命令前加上反斜杠:
\ls -d */
如果不需要列出隐藏目录,我提供:
ls -l | grep "^d" | awk -F" " '{print $9}'
如果需要列出隐藏目录,请使用:
ls -Al | grep "^d" | awk -F" " '{print $9}'
Or
find -maxdepth 1 -type d | awk -F"./" '{print $2}'
只从“这里”列出目录的一行程序。
文件计数。
for i in `ls -d */`; do g=`find ./$i -type f -print| wc -l`; echo "Directory $i contains $g files."; done
使用Test -d测试项目是否为目录:
for i in $(ls); do test -d $i && echo $i ; done
这是我正在用的
ls -d1 /Directory/Path/*;