如何申请!(非)简单终端命令中的运算符

Rez*_*oja 1 bash shell-script wildcards

这似乎是一件非常简单的事情。我已经在我的 Bash 脚本中完成了它,但我想知道如何在终端中做同样的事情。

例如,假设我想要ls所有不是js. 可能我会这样做:

ls ! *.js
Run Code Online (Sandbox Code Playgroud)

但是我的!操作员出错了。

如何使用 not ( ) 运算符执行mvrm和任何其他操作!

请注意,我的外壳是 Bash。

Ark*_*zyk 6

bashshell 中,您应该启用extglob并运行ls !(*.js).

例子:

$ touch file.js file.txt
$ shopt -s extglob
$ ls  !(*.js)
file.txt
Run Code Online (Sandbox Code Playgroud)

  • 它仅在当前子shell 中启用它。如果你想永久设置它,你需要将它添加到你的 `~/.bashrc` 中。 (4认同)