![如何避免写完整的文件名](https://linux22.com/image/1326210/%E5%A6%82%E4%BD%95%E9%81%BF%E5%85%8D%E5%86%99%E5%AE%8C%E6%95%B4%E7%9A%84%E6%96%87%E4%BB%B6%E5%90%8D.png)
我想知道在 Linux Shell 中是否有一种方法可以键入文件名或目录名的第一个唯一部分,然后添加“~”或“...”并避免写出整个文件名。
例如,如果我必须光盘到目录
example-program-source-0.11.229-dev
而不是写作
cd example-program-source-0.11.229-dev
只是写一些类似的东西
cd example-program...
或者
cd example-program~
我认为 shell 中应该集成了类似的东西,但我不知道具体要搜索什么。
答案1
大多数 shell 都支持所谓的“Tab 补全”。只需键入文件名的唯一部分,然后按下Tab按键即可。shell 应该会自动为您补全文件名的其余部分。如果仍有多个文件与您到目前为止键入的内容相匹配,则 shell 会在您按下 时循环显示匹配的文件Tab,或者在您双击 时打印所有匹配文件的列表Tab,具体取决于配置。默认情况下,Bash 会在您双击时打印列表Tab。
答案2
您可以使用*
通配符:
cd example-program*
请注意,这将扩展为全部与通配符匹配的文件。对于您的情况,只有当只有一个以 开头的路径时才能使用它example-program
。如果有多个带有前缀的目录,则该命令将有效扩展为例如:
cd example-program-source-0.11.229-dev example-program-other example-program.txt
如果你确实想处理多个文件,例如,如果您想显示.log
文件夹中所有文件的内容:
cat *.log