我正在学习 shell 命令并遇到了短标签,例如[0-9]、[[:digit:]] 等。作为概念证明,我尝试使用 rm 命令删除所有文件(我知道它不是一个很好的做法,但我想了解事情是如何运作的),就像这样
rm [0-9].txt
目录中有两个文件 0.txt 和 9.txt ,它删除了文件 0.txt 和 9.txt 。我猜测表达式 [0-9] 被扩展然后读为 0.txt 1.txt 2 .txt ....但是,当您仅尝试 rm 5.txt 并且该文件不存在时,会引发错误。
有人请告诉我速记命令与 rm 或 ls 一起使用时如何工作。
答案1
[0-9].txt 是一个正则表达式,展开后表示一个或多个扩展名为 .txt 且名称为 0 到 9 之间的单个数字的文件实例。这并不意味着您必须拥有全部 10 个文件文件。如果没有,您将收到一条错误消息,但如果您至少有一个与此模式匹配的文件,您的命令将成功完成。