我最近更改了 emacs 配置,通过在文件名前面添加一个点来隐藏备份文件。这让我开始思考 - 是否有一种现成的方法可以改变 Bash 中的行为,以使用任意 glob 列表来隐藏哪些文件?快速扫描 bash 和 ls 手册页没有发现任何结果。
答案1
ls
有一个--hide=PATTERN
选项看起来像您想要的那样,并且可以覆盖以使用-a
或来显示它们-A
。如果您希望这种情况自动发生,请在您的中添加一个别名~/.bashrc
(或者,在可能的情况下,它已经有一个别名,请将其添加到该别名中)。
$ touch {a,b,c}-{1,2,3}
$ ls
a-1 a-2 a-3 b-1 b-2 b-3 c-1 c-2 c-3
$ ls --hide=a*
b-1 b-2 b-3 c-1 c-2 c-3
$ ls --hide=*1
a-2 a-3 b-2 b-3 c-2 c-3
$ ls --hide=a*1
a-2 a-3 b-1 b-2 b-3 c-1 c-2 c-3
$ ls --hide=a*1 -A
a-1 a-2 a-3 b-1 b-2 b-3 c-1 c-2 c-3
还有一个--ignore=PATTERN
不会被-a
和-A
选项覆盖。
答案2
这是我的别名ls
:
alias ls="ls --color=auto --hide='*~' --hide='#*#'"
这隐藏了backup.c~
和 之类的文件#autosave.h#
。 (而且,尽管我固执己见,但我喜欢颜色,所以它也这样做。)