我如何在 bash 中执行“dir *.mp3”?

我如何在 bash 中执行“dir *.mp3”?

在 Windows 上,我曾经快速运行一个命令dir *.mp3来查找当前目录中所有带有 mp3 扩展名的文件。有没有类似的快速方法可以用 bash 来做到这一点?该ls命令似乎有办法忽略图案,但不能只显示图案。我可以这样做find . -maxdepth 1 -iname '*.mp3'ls|grep -i '\.mp3$'但这些都不会在半秒或更短的时间内从我的手指中流出)

还有其他更快捷的方法吗?

答案1

你有没有尝试过ls *.mp3

答案2

请注意狂欢,命令行解释器会先解析星号通配符,然后将生成的字符串数组传递给正确的命令。在Windows(前 DOS)命令行,星号通配符被“按原样”传递给命令,然后命令必须遗憾地处理它。参见维基百科通配符条目

尝试以下操作来查看通配符的行为:

#!/bin/bash    
# Display all "positional parameters" (as they are called), passed to the script:    
# COUNT is the number of positional paramaters

COUNT=$#    
while [[ $COUNT -gt 0 ]]; do
   echo "'$1'"
   # pop positional argument 1 off the stack of positional arguments
   shift
   let COUNT=$COUNT-1
done

相关内容