控制要显示的文件


10

最近,我将emacs配置更改为通过在文件名前加点来隐藏备份文件。这让我开始思考-是否有现成的方法可以更改Bash中的行为,以使用任意glob列表来隐藏哪些文件?快速浏览bash和ls手册页并没有发现任何问题。


您的意思是,例如ls忽略所有ignore-.bak?开头的文件或以?结尾的所有文件。
凯文

是的,最好还具有进行通配符模式匹配,ignore-*。bak等的功能
Tim Brigham

Answers:


9

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选项覆盖的。


感谢您的回答,我只有一个问题:为什么不ls --hide=*1 a*隐藏任何东西,但仍然列出全部三个a-1 a-2 a-3?我本来希望它可以隐藏a-1
sdaau 2014年

1
a*由壳膨胀并包括a-1。hide选项不会忽略显式命名为参数的文件。
凯文

0

这是我的别名ls

alias ls="ls --color=auto --hide='*~' --hide='#*#'"

隐藏诸如backup.c~和的文件#autosave.h#。(而且我自以为是,我喜欢颜色,所以它也一样。)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.