我想 glob 每个隐藏文件和目录,但不是当前 ( .) 和父目录 ( ..)。
我正在使用 bash。
观察当前行为:
$ ls -a
. .. ...a ...aa ..a ..aa .a .aa .aaa a
$ echo *
a
$ echo .*
. .. ...a ...aa ..a ..aa .a .aa .aaa
Run Code Online (Sandbox Code Playgroud)
我想.*表现得像这样
$ echo .*
...a ...aa ..a ..aa .a .aa .aaa
Run Code Online (Sandbox Code Playgroud)
有外壳选项 dotglob
$ shopt -s dotglob
Run Code Online (Sandbox Code Playgroud)
这在某种程度上起作用;现在我可以使用*glob 的所有内容(隐藏或不隐藏)但不能.和..
$ echo *
...a ...aa ..a ..aa .a .aa .aaa a
Run Code Online (Sandbox Code Playgroud)
但现在我无法区分隐藏与否。此外, …
因此,在目录上下文中*使用时,您可以将用作所有文件的通配符cp。有没有办法复制除文件之外的所有x文件?
在命令行上,我能否用 shell glob 轻松表达我想要捕获的所有文件something-*.txt,除了something-*-foobar.txt? 如果可以,怎么做?
注意:我知道如何grep -v使用多个命令或多个命令的其他组合来实现相同的目标。问题仅在于是否(以及如何)使用 shell glob 来实现这一点。