ls 别名中只显示隐藏文件(点文件)

xra*_*alf 60 ls alias wildcards

我正在使用命令

ls -a | grep '^\.'

仅显示隐藏文件。我添加了该行

alias hidden='ls -a | grep '^\.'' # show only hidden files

.bash_aliases文件

但这不起作用。应该是'人品问题。

你能帮我写正确的别名吗?

Gil*_*il' 116

让 shell 列出点文件,并告诉ls不要看穿目录:

ls -d .*
Run Code Online (Sandbox Code Playgroud)

  • 与基于`grep` 的方法不同,这具有允许多列列表的优点。 (7认同)
  • @honzajde 这个问题没有要求排除目录。如果要排除目录,可以使用`ls -d .* | grep -v '^d'` 或(仅限 zsh)`print -lr .*(.)` (2认同)

man*_*ork 33

要么使内部引号对双引号:

alias hidden='ls -a | grep "^\."'
Run Code Online (Sandbox Code Playgroud)

或者使外部引号双引号:

alias hidden="ls -a | grep '^\.'"
Run Code Online (Sandbox Code Playgroud)

或者使所有引号双引号并转义内部对:

alias hidden="ls -a | grep \"^\.\""
Run Code Online (Sandbox Code Playgroud)

或者让它成为一个函数,这样你就可以在调用时传递一些参数:

hidden() { ls -a "$@" | grep '^\.'; }
Run Code Online (Sandbox Code Playgroud)


小智 12

ls -Ad .* #This will list all the hidden files & directories while retaining the color & formatting
Run Code Online (Sandbox Code Playgroud)

或者

要创建相同的别名:

alias lh='ls -Ad .*'
Run Code Online (Sandbox Code Playgroud)

或者

同样的事情可以通过 grep 命令和管道操作符来完成;但是它会丢失颜色和格式:

ls -a|grep "^\." 
Run Code Online (Sandbox Code Playgroud)

或者

通过别名:

alias lh='ls -a|grep "^\."'
Run Code Online (Sandbox Code Playgroud)