[] 通配符不起作用

[] 通配符不起作用

我正在观看一个学习 Linux 通配符的培训视频,我学习了其中的一些,例如 {}、*、?、[] 等。之后,我想做一些练习,并尝试在一个文件夹中创建 300 个目录,它们的名称类似于文件夹 1、文件夹 2、文件夹 3...,然后我尝试创建 100 个文件,它们的名称类似于 file1.txt、file2.txt、file3.txt...然后我将这些命令写入终端:

https://i.stack.imgur.com/7kOMn.png

我意识到我无法创建我想要的东西,所以我尝试了另一个通配符“{}”,然后我将这些命令写入终端:

https://i.stack.imgur.com/E576w.png

如您所见,在过程结束时我成功了,但我仍然不知道为什么“[]”通配符不起作用。在我观看的视频中,那个人写了像我留下的第一张图片那样的命令,然后创建了文件夹。有人能解释一下为什么那个通配符不起作用吗?

答案1

这是因为您不想使用通配符。Awildcard是选择现存的名字。(见文件名扩展

  • ?是任意字符的通配符,且仅一次。
  • *是任意字符的通配符,可以出现任意次数。
  • []是字符类通配符,匹配一个类(一个或多个字符的集合),一次。在括号内设置允许匹配的字符。[1-300]不起作用。

{...}是你想要的,但它不是一个通配符,它​​被称为括号扩展

很遗憾,一些教程是错误的。

相关内容