如何在命令行主动展开星号(*)?
如何主动触发命令行中的星号(*)通配符展开?
嘿,这个问题我太熟了!你说的星号展开其实就是 shell 里的通配符扩展(globbing),要主动触发它其实有几种简单的方法,分不同常用shell给你说明:
Bash 环境下的触发方式
- 快捷键触发:默认绑定的快捷键是
Ctrl + *(按住Ctrl键的同时按下星号键)。比如你输入了mv * ~/my_target_dir/,按下这个组合键后,命令行里的*就会自动替换成当前目录下所有非隐藏的文件和文件夹名称。 - 备选方案:如果快捷键没生效(可能是终端配置修改了绑定),可以先执行
echo *预览展开后的所有内容,再把输出结果复制粘贴到你的移动命令中,同样能达到手动展开的效果。
Zsh 环境下的触发方式
- Zsh 默认的触发快捷键是
Ctrl + X松开后再按*。和bash类似,这个操作会直接把命令行里的通配符替换成所有匹配的文件/文件夹列表。 - 另外Zsh的补全功能更强大,你也可以尝试按
Tab键触发类展开效果,但Tab更多是针对单个项的补全,而Ctrl+X *是一次性展开所有匹配项。
额外注意事项
- 展开操作会自动处理带空格、特殊字符的文件名,shell会给这类名称添加合适的转义,不用担心移动时出错。
- 如果只想展开特定类型的文件,比如所有
.txt文件,输入mv *.txt ~/target/后再用对应的快捷键,就只会展开匹配的文本文件。
内容的提问来源于stack exchange,提问作者Thorbjørn E. K. Christensen
相关产品推荐
相关产品推荐

