我试图单独使用ls命令显示目录中的隐藏文件。
ls -lAd .*
但命令返回。和..目录名也在输出中。即使我提到过这个命令有什么不对," A"选项与ls。
答案 0 :(得分:3)
您可以使用GLOBIGNORE
内部变量。
for
答案 1 :(得分:1)
这是供参考,但答案由@anishsane below给出。
你的小球是错的:
.*
将扩展为.
和..
。您可以将glob更改为:
.??*
但这与以下隐藏文件不匹配:.a
,.b
。或.[^.]*
,但与..a
,..b
等文件不匹配,两者结合可能是一个选项:
ls -lAd .[^.]* ..?*
但这很可能会发生:ls: error: ..?* no such file or directory
。启用nullglob将阻止此:
shopt -s nullglob
ls -lAd .[^.]* ..?*
如果目录中没有隐藏文件,这将显示为ls -lAd
,这将显示当前工作目录(.
)
另外,您可以将ls
的输出传输到awk
,但这很可能会消除颜色:
ls -lA | awk '$9 ~ /^\./'
答案 2 :(得分:0)
ls -Al --ignore="[^.]*"
忽略所有不是以.
开头的文件和目录
其他:您可以为任何目录调用此目录,如果您将其用作.bashrc中的别名,该目录将很方便
alias lsh='ls -Al --ignore="[^.]*"'
就做
lsh /path/directory