在 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