命令行 终端:展开类似文件名快捷方式的列表

分享于 

3分钟阅读

ubuntu

  繁體 雙語

问题:

我记得在,注释中读取一个技巧,可以在终端中获得文件名列表,但是我不能记住它。

如果你有很多文件,如:


foo-a.txt


foo-b.txt


foo-c.txt



有一个技巧可以沿着下面的路线走:

  • 类型 cat foo-*
  • tabbackspaceesc ( 这不能工作,但这是我想知道的步骤)
  • 现在 命令行 应该有 cat foo-a foo-b foo-c
  • 注意,这与基本标签完成不同,它在命令下面显示一个文件名列表。 这将把所有文件名放入命令输入,这样按"输入"就可以在所有文件中执行 cat。

    谁能启发我?


回答 1:

  • 类型 cat foo-*
  • 按Ctrl+X键,然后按 * (。Asterisk - 在美国键盘上的Shift+8 ) 展开
    • 这是默认快捷键如果不工作,请检查 bind -p | grep glob-expand-word 要查看它是否设置为默认值: "C-x*": glob-expand-word 如果不是,你可以使用 bind'"C-x*": glob-expand-word' 设置它。
  • 现在 命令行 应该是 cat foo-a.txt foo-b.txt foo-c.txt
  • glob-expand-word vs insert-completions

    op的回答是关于 insert-completions (,*),,但与 glob-expand-word 相似但不同。glob-expand-word 扩展文件名 globs。insert-completions 插入按Tab键显示的所有可能完成。

    这意味着除了文件名之外,还可以使用它,比如选项。 比如 ls --f,按Esc键,*,,你会得到 ls --file-type --format=,虽然我不知道那是什么好。

    这意味着在扩展文件名或者globs时它的行为是不同的。 例如如果键入 cat foo-* 并按Esc键,*, 将只扩展到第一个完成: cat foo-a.txt


回答 2:

我在这里找到了原来的评论 ( 能给我更多点数的人给我 upvote for? :p )

序列为:

  • 类型 cat foo-
  • 按esc键
  • 按 * ( Asterisk )

相同的序列似乎可以处理任何程序( 而不仅仅是 cat )



COM  文件  COMM  lis  列表  Comma  
相关文章