如何删除可能是小写/大写的文件

yae*_*ael 5 linux bash regular-expression rm files

如何删除文件,可能与侧/上侧的情况下

例如,file_name 可以是:

  • STOCK.Repo 或
  • Stock.REPO 或
  • 股票.repo 或
  • 股票.repo
  • ... 等等

我会跑:

 rm -f $file_name
Run Code Online (Sandbox Code Playgroud)

目标是将文件作为 stock.repo 删除,该文件可能在远程机器上为小写/大写

fpm*_*phy 7

对于 Bash 特定的解决方案:

$ shopt -s nocaseglob
Run Code Online (Sandbox Code Playgroud)

然后运行rm命令。

注意要取消设置此选项,请使用 shopt -u nocaseglob

为了完整起见,我会指出一个替代但不太优雅的解决方案:

$ rm [sS][tT][oO][cC][kK].[rR][eE][pP][oO]
Run Code Online (Sandbox Code Playgroud)


Dev*_*laN 5

您可以使用find命令来完成

find /path/to/directory -type f -iname stock\.repo -exec rm -f {} \;

但要非常小心。它从 /path/to/directory 递归地工作。您应该考虑使用 maxdepth 选项,并在可能造成永久性损坏的生产系统上运行它之前更加熟悉此命令。

  • 大多数 `find` 实现也有 `-delete`。为了安全起见,如果使用`-exec rm`,你可以使用`-ok rm`。 (2认同)