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

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

我正在使用命令

ls -a | grep '^\.'

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

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

归档.bash_aliases

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

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

答案1

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

ls -d .*

答案2

要么将内部一对引号设为双引号:

alias hidden='ls -a | grep "^\."'

或者将外面的一对引号设为双引号:

alias hidden="ls -a | grep '^\.'"

或者将所有引号设为双引号并转义内部对:

alias hidden="ls -a | grep \"^\.\""

或者将其设为函数,这样您就可以在调用时传递一些参数:

hidden() { ls -a "$@" | grep '^\.'; }

答案3

ls -Ad .* #This will list all the hidden files & directories while retaining the color & formatting

或者

要创建相同的别名:

alias lh='ls -Ad .*'

或者

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

ls -a|grep "^\." 

或者

通过别名:

alias lh='ls -a|grep "^\."'

答案4

根据记录,这似乎对我不起作用,因为ls -a打印两列(有时更多列)。我建议使用该-1选项来确保每个文件都在自己的行中。像这样的东西:

alias hidden='ls -a1 | grep "^\."'

相关内容