Bash globbing - 针对一些特定情况的autoexpand?

Fra*_*rth 10 bash filenames glob expansion

我知道通配符*(单独)将以这样一种方式扩展,即它意味着"当前文件夹中的所有非隐藏文件",其中隐藏文件是以句点为前缀的文件.

我认为有两个用例是有用的,但我不知道如何正确地做:

  1. 你怎么能为......"当前文件夹中的所有文件,包括隐藏文件,但不包括..."?

  2. 你怎么能为......"所有隐藏文件(和隐藏文件)在当前文件夹中,但不包括..."?

sth*_*sth 15

要扩展paviums回答并回答你问题的第二部分,除了.和之外的所有文件..都可以像这样指定:

{.[!.]*,*}
Run Code Online (Sandbox Code Playgroud)

根据您的确切用例,最好设置dotglobshell选项,以便bash *默认包含扩展中的dotfiles :

$ shopt -s dotglob
$ echo *
.tst
Run Code Online (Sandbox Code Playgroud)

  • `{..?*,.[^.]*,[^.]*}`无论`dotglob`设置如何都可以工作,避免丢失以两个点开头的文件名,这里的每个人似乎都错过了. (2认同)