Terminal: Expand list of similar filename shortcut












3















I remember reading a trick in a stackoverflow comment somewhere for getting a list of filenames in the terminal, but I can't exactly remember it.



If you have a bunch of files like:



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


There is a trick that goes something along the lines of:




  1. type cat foo-*

  2. Press something like tab, backspace, esc (this does not work, but is the step I want to know)

  3. The command line should now have cat foo-a foo-b foo-c


Note that is is different to the basic tab completion which shows a list of filenames below the command. This will put all the filenames in the command input so that pressing "enter" will execute cat with all the files.



Can anyone enlighten me?










share|improve this question





























    3















    I remember reading a trick in a stackoverflow comment somewhere for getting a list of filenames in the terminal, but I can't exactly remember it.



    If you have a bunch of files like:



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


    There is a trick that goes something along the lines of:




    1. type cat foo-*

    2. Press something like tab, backspace, esc (this does not work, but is the step I want to know)

    3. The command line should now have cat foo-a foo-b foo-c


    Note that is is different to the basic tab completion which shows a list of filenames below the command. This will put all the filenames in the command input so that pressing "enter" will execute cat with all the files.



    Can anyone enlighten me?










    share|improve this question



























      3












      3








      3


      0






      I remember reading a trick in a stackoverflow comment somewhere for getting a list of filenames in the terminal, but I can't exactly remember it.



      If you have a bunch of files like:



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


      There is a trick that goes something along the lines of:




      1. type cat foo-*

      2. Press something like tab, backspace, esc (this does not work, but is the step I want to know)

      3. The command line should now have cat foo-a foo-b foo-c


      Note that is is different to the basic tab completion which shows a list of filenames below the command. This will put all the filenames in the command input so that pressing "enter" will execute cat with all the files.



      Can anyone enlighten me?










      share|improve this question
















      I remember reading a trick in a stackoverflow comment somewhere for getting a list of filenames in the terminal, but I can't exactly remember it.



      If you have a bunch of files like:



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


      There is a trick that goes something along the lines of:




      1. type cat foo-*

      2. Press something like tab, backspace, esc (this does not work, but is the step I want to know)

      3. The command line should now have cat foo-a foo-b foo-c


      Note that is is different to the basic tab completion which shows a list of filenames below the command. This will put all the filenames in the command input so that pressing "enter" will execute cat with all the files.



      Can anyone enlighten me?







      command-line bash shortcut-keys






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Feb 3 at 8:45







      mdsimmo

















      asked Feb 3 at 8:17









      mdsimmomdsimmo

      486




      486






















          2 Answers
          2






          active

          oldest

          votes


















          6















          1. Type cat foo-*

          2. Press Ctrl+X then * (asterisk - Shift+8 on a US keyboard) to expand the glob


            • That's the default shortcut. If it doesn't work, check bind -p | grep glob-expand-word to see if it's set as the default: "C-x*": glob-expand-word. If it's not, you can set it with bind '"C-x*": glob-expand-word'.



          3. The command line should now be cat foo-a.txt foo-b.txt foo-c.txt





          glob-expand-word vs insert-completions



          OP's answer is about insert-completions (Esc, *), which is similar but different to glob-expand-word. glob-expand-word expands filename globs. insert-completions inserts all the possible completions that pressing Tab would show.



          So that means you can also use it for things besides filenames, like options. For example type ls --f, press Esc, *, and you will get ls --file-type --format=, though I'm not sure what good that does...



          And that means that it behaves differently when expanding filenames or globs. For example if you type cat foo-* and press Esc, *, it will expand to only the first completion: cat foo-a.txt.






          share|improve this answer


























          • Thanks, that it! Btw: You can also use esc instead of ctr+x

            – mdsimmo
            Feb 3 at 8:59






          • 1





            @mdsimmo Esc, * is a different function actually. I just checked bind -p | grep '\e*' and it says "e*": insert-completions. I'm not clear on the exact difference, but if you type cat * then press Esc, *, it will expand to just the first matching item.

            – wjandrea
            Feb 3 at 9:02





















          3














          I found the original comment here. (Can someone with more points upvote him for me? :P)



          The sequence is:




          • Type cat foo-

          • Press esc

          • Press * (asterisk)


          The same sequence seems to work with any program (not just cat)






          share|improve this answer





















          • 1





            Upvoted the comment per request :p (BTW, worth noting that comment upvotes don't count towards reputation points)

            – wjandrea
            Feb 3 at 22:16











          Your Answer








          StackExchange.ready(function() {
          var channelOptions = {
          tags: "".split(" "),
          id: "89"
          };
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function() {
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled) {
          StackExchange.using("snippets", function() {
          createEditor();
          });
          }
          else {
          createEditor();
          }
          });

          function createEditor() {
          StackExchange.prepareEditor({
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader: {
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          },
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          });


          }
          });














          draft saved

          draft discarded


















          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2faskubuntu.com%2fquestions%2f1115192%2fterminal-expand-list-of-similar-filename-shortcut%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown

























          2 Answers
          2






          active

          oldest

          votes








          2 Answers
          2






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          6















          1. Type cat foo-*

          2. Press Ctrl+X then * (asterisk - Shift+8 on a US keyboard) to expand the glob


            • That's the default shortcut. If it doesn't work, check bind -p | grep glob-expand-word to see if it's set as the default: "C-x*": glob-expand-word. If it's not, you can set it with bind '"C-x*": glob-expand-word'.



          3. The command line should now be cat foo-a.txt foo-b.txt foo-c.txt





          glob-expand-word vs insert-completions



          OP's answer is about insert-completions (Esc, *), which is similar but different to glob-expand-word. glob-expand-word expands filename globs. insert-completions inserts all the possible completions that pressing Tab would show.



          So that means you can also use it for things besides filenames, like options. For example type ls --f, press Esc, *, and you will get ls --file-type --format=, though I'm not sure what good that does...



          And that means that it behaves differently when expanding filenames or globs. For example if you type cat foo-* and press Esc, *, it will expand to only the first completion: cat foo-a.txt.






          share|improve this answer


























          • Thanks, that it! Btw: You can also use esc instead of ctr+x

            – mdsimmo
            Feb 3 at 8:59






          • 1





            @mdsimmo Esc, * is a different function actually. I just checked bind -p | grep '\e*' and it says "e*": insert-completions. I'm not clear on the exact difference, but if you type cat * then press Esc, *, it will expand to just the first matching item.

            – wjandrea
            Feb 3 at 9:02


















          6















          1. Type cat foo-*

          2. Press Ctrl+X then * (asterisk - Shift+8 on a US keyboard) to expand the glob


            • That's the default shortcut. If it doesn't work, check bind -p | grep glob-expand-word to see if it's set as the default: "C-x*": glob-expand-word. If it's not, you can set it with bind '"C-x*": glob-expand-word'.



          3. The command line should now be cat foo-a.txt foo-b.txt foo-c.txt





          glob-expand-word vs insert-completions



          OP's answer is about insert-completions (Esc, *), which is similar but different to glob-expand-word. glob-expand-word expands filename globs. insert-completions inserts all the possible completions that pressing Tab would show.



          So that means you can also use it for things besides filenames, like options. For example type ls --f, press Esc, *, and you will get ls --file-type --format=, though I'm not sure what good that does...



          And that means that it behaves differently when expanding filenames or globs. For example if you type cat foo-* and press Esc, *, it will expand to only the first completion: cat foo-a.txt.






          share|improve this answer


























          • Thanks, that it! Btw: You can also use esc instead of ctr+x

            – mdsimmo
            Feb 3 at 8:59






          • 1





            @mdsimmo Esc, * is a different function actually. I just checked bind -p | grep '\e*' and it says "e*": insert-completions. I'm not clear on the exact difference, but if you type cat * then press Esc, *, it will expand to just the first matching item.

            – wjandrea
            Feb 3 at 9:02
















          6












          6








          6








          1. Type cat foo-*

          2. Press Ctrl+X then * (asterisk - Shift+8 on a US keyboard) to expand the glob


            • That's the default shortcut. If it doesn't work, check bind -p | grep glob-expand-word to see if it's set as the default: "C-x*": glob-expand-word. If it's not, you can set it with bind '"C-x*": glob-expand-word'.



          3. The command line should now be cat foo-a.txt foo-b.txt foo-c.txt





          glob-expand-word vs insert-completions



          OP's answer is about insert-completions (Esc, *), which is similar but different to glob-expand-word. glob-expand-word expands filename globs. insert-completions inserts all the possible completions that pressing Tab would show.



          So that means you can also use it for things besides filenames, like options. For example type ls --f, press Esc, *, and you will get ls --file-type --format=, though I'm not sure what good that does...



          And that means that it behaves differently when expanding filenames or globs. For example if you type cat foo-* and press Esc, *, it will expand to only the first completion: cat foo-a.txt.






          share|improve this answer
















          1. Type cat foo-*

          2. Press Ctrl+X then * (asterisk - Shift+8 on a US keyboard) to expand the glob


            • That's the default shortcut. If it doesn't work, check bind -p | grep glob-expand-word to see if it's set as the default: "C-x*": glob-expand-word. If it's not, you can set it with bind '"C-x*": glob-expand-word'.



          3. The command line should now be cat foo-a.txt foo-b.txt foo-c.txt





          glob-expand-word vs insert-completions



          OP's answer is about insert-completions (Esc, *), which is similar but different to glob-expand-word. glob-expand-word expands filename globs. insert-completions inserts all the possible completions that pressing Tab would show.



          So that means you can also use it for things besides filenames, like options. For example type ls --f, press Esc, *, and you will get ls --file-type --format=, though I'm not sure what good that does...



          And that means that it behaves differently when expanding filenames or globs. For example if you type cat foo-* and press Esc, *, it will expand to only the first completion: cat foo-a.txt.







          share|improve this answer














          share|improve this answer



          share|improve this answer








          edited Feb 3 at 22:40

























          answered Feb 3 at 8:56









          wjandreawjandrea

          9,08542362




          9,08542362













          • Thanks, that it! Btw: You can also use esc instead of ctr+x

            – mdsimmo
            Feb 3 at 8:59






          • 1





            @mdsimmo Esc, * is a different function actually. I just checked bind -p | grep '\e*' and it says "e*": insert-completions. I'm not clear on the exact difference, but if you type cat * then press Esc, *, it will expand to just the first matching item.

            – wjandrea
            Feb 3 at 9:02





















          • Thanks, that it! Btw: You can also use esc instead of ctr+x

            – mdsimmo
            Feb 3 at 8:59






          • 1





            @mdsimmo Esc, * is a different function actually. I just checked bind -p | grep '\e*' and it says "e*": insert-completions. I'm not clear on the exact difference, but if you type cat * then press Esc, *, it will expand to just the first matching item.

            – wjandrea
            Feb 3 at 9:02



















          Thanks, that it! Btw: You can also use esc instead of ctr+x

          – mdsimmo
          Feb 3 at 8:59





          Thanks, that it! Btw: You can also use esc instead of ctr+x

          – mdsimmo
          Feb 3 at 8:59




          1




          1





          @mdsimmo Esc, * is a different function actually. I just checked bind -p | grep '\e*' and it says "e*": insert-completions. I'm not clear on the exact difference, but if you type cat * then press Esc, *, it will expand to just the first matching item.

          – wjandrea
          Feb 3 at 9:02







          @mdsimmo Esc, * is a different function actually. I just checked bind -p | grep '\e*' and it says "e*": insert-completions. I'm not clear on the exact difference, but if you type cat * then press Esc, *, it will expand to just the first matching item.

          – wjandrea
          Feb 3 at 9:02















          3














          I found the original comment here. (Can someone with more points upvote him for me? :P)



          The sequence is:




          • Type cat foo-

          • Press esc

          • Press * (asterisk)


          The same sequence seems to work with any program (not just cat)






          share|improve this answer





















          • 1





            Upvoted the comment per request :p (BTW, worth noting that comment upvotes don't count towards reputation points)

            – wjandrea
            Feb 3 at 22:16
















          3














          I found the original comment here. (Can someone with more points upvote him for me? :P)



          The sequence is:




          • Type cat foo-

          • Press esc

          • Press * (asterisk)


          The same sequence seems to work with any program (not just cat)






          share|improve this answer





















          • 1





            Upvoted the comment per request :p (BTW, worth noting that comment upvotes don't count towards reputation points)

            – wjandrea
            Feb 3 at 22:16














          3












          3








          3







          I found the original comment here. (Can someone with more points upvote him for me? :P)



          The sequence is:




          • Type cat foo-

          • Press esc

          • Press * (asterisk)


          The same sequence seems to work with any program (not just cat)






          share|improve this answer















          I found the original comment here. (Can someone with more points upvote him for me? :P)



          The sequence is:




          • Type cat foo-

          • Press esc

          • Press * (asterisk)


          The same sequence seems to work with any program (not just cat)







          share|improve this answer














          share|improve this answer



          share|improve this answer








          edited Feb 3 at 22:15









          wjandrea

          9,08542362




          9,08542362










          answered Feb 3 at 8:55









          mdsimmomdsimmo

          486




          486








          • 1





            Upvoted the comment per request :p (BTW, worth noting that comment upvotes don't count towards reputation points)

            – wjandrea
            Feb 3 at 22:16














          • 1





            Upvoted the comment per request :p (BTW, worth noting that comment upvotes don't count towards reputation points)

            – wjandrea
            Feb 3 at 22:16








          1




          1





          Upvoted the comment per request :p (BTW, worth noting that comment upvotes don't count towards reputation points)

          – wjandrea
          Feb 3 at 22:16





          Upvoted the comment per request :p (BTW, worth noting that comment upvotes don't count towards reputation points)

          – wjandrea
          Feb 3 at 22:16


















          draft saved

          draft discarded




















































          Thanks for contributing an answer to Ask Ubuntu!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid



          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.


          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2faskubuntu.com%2fquestions%2f1115192%2fterminal-expand-list-of-similar-filename-shortcut%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          How to change which sound is reproduced for terminal bell?

          Title Spacing in Bjornstrup Chapter, Removing Chapter Number From Contents

          Can I use Tabulator js library in my java Spring + Thymeleaf project?