Я не забываю читать прием в комментарии stackoverflow где-нибудь для получения списка имен файлов в терминале, но я не могу точно помнить это.
Если у Вас есть набор файлов как:
foo-a.txt
foo-b.txt
foo-c.txt
Существует прием, который идет что-то вроде:
cat foo-*
tab
, backspace
, esc
(это не работает, но является шагом, который я хочу знать),cat foo-a foo-b foo-c
Обратите внимание, что это, отличается от основного заполнения клавишей Tab, которое показывает список имен файлов ниже команды. Это поместит все имена файлов во ввод команд так, чтобы нажатие "Enter" выполнило кошку со всеми файлами.
Кто-либо может просветить меня?
cat foo-*
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
по сравнению с 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
.
Я нашел исходный комментарий здесь. (Может кто-то с большим количеством точек upvote его для меня?:P)
Последовательность:
cat foo-
Та же последовательность, кажется, работает с любой программой (не просто cat
)