Терминал: Разверните список подобного ярлыка имени файла

Я не забываю читать прием в комментарии stackoverflow где-нибудь для получения списка имен файлов в терминале, но я не могу точно помнить это.

Если у Вас есть набор файлов как:

foo-a.txt
foo-b.txt
foo-c.txt

Существует прием, который идет что-то вроде:

  1. ввести cat foo-*
  2. Нажмите что-то как tab, backspace, esc (это не работает, но является шагом, который я хочу знать),
  3. Командная строка должна теперь иметь cat foo-a foo-b foo-c

Обратите внимание, что это, отличается от основного заполнения клавишей Tab, которое показывает список имен файлов ниже команды. Это поместит все имена файлов во ввод команд так, чтобы нажатие "Enter" выполнило кошку со всеми файлами.

Кто-либо может просветить меня?

4
задан 3 February 2019 в 11:45

2 ответа

  1. Ввести cat foo-*
  2. Нажмите Ctrl+X затем * (звездочка/звезда) для расширения шарика
    • Если это не работает, работает bind -p | grep glob-expand-word и проверьте, говорит ли это "\C-x*": glob-expand-word. В противном случае можно установить его:
      bind '"\C-x*": glob-expand-word'
      
  3. Командная строка должна теперь быть cat foo-a.txt foo-b.txt foo-c.txt

glob-expand-word по сравнению с insert-completions

Ответ OP о insert-completions (Esc, * или Высокий звук + *), который подобен, но отличается от glob-expand-word:

  • glob-expand-word разворачивает шарики имени файла.
  • insert-completions вставляет все возможные завершения, которые показал бы нажатие Tab.

Таким образом, это означает, что можно также использовать insert-completions для вещей помимо имен файлов, как опции. Например, введите ls --f, нажмите Esc, *, и Вы доберетесь ls --file-type --format=, хотя я не уверен, как полезный, который является.

И это означает, что ведет себя по-другому при расширении шариков. Например, если Вы вводите cat foo-* и нажмите Esc, *, он расширится только до первого завершения: cat foo-a.txt.

5
ответ дан 1 December 2019 в 09:12

Я нашел исходный комментарий здесь. (Может кто-то с большим количеством точек upvote его для меня?:P)

Последовательность:

  • Ввести cat foo-
  • Нажмите esc
  • Нажмите * (звездочка)

Та же последовательность, кажется, работает с любой программой (не просто cat)

2
ответ дан 1 December 2019 в 09:12

Другие вопросы по тегам:

Похожие вопросы: