Maybe there is a tool that does that? Maybe I'm doing this all wrong and there is a different way I should browse?

top 50 comments

sorted by: hot top controversial new old
[–] 3 points 6 hours ago

I use tab complete a lot to find a file/path. would cd /foo/some<tab>/more<tab>/desti<tab> get you there any easier?

  • source
  • [–] 4 points 8 hours ago*

    Looks like no one has mentioned this yet. So I'll be the FZF champion in this thread.

    The ZSH plugin for FZF gives you a few commands that use the fuzzy search to find files by name, keyword in content etc.

    It could be very easy to add something like that for your use case where you can use and you pick the file name from the output and it automatically cd's into the selected file's directory.

  • source
  • [–] 4 points 12 hours ago

    There's already some great answers in the thread, so I won't add to those.

    Some shortcuts are shell-specific. For example, !!, !:$, and ^old^new are in bash, but not in fish.

    Some things, like Alt-. and Ctrl-a, are implemented by readline, which can be used elsewhere, as well, for example in the python interpeter.

    Depending on your context, it may be better to invest time learning methods implemented by readline. While not necessarily universal, they are more versatile.

    There were heaps of functions I was using not realising they were from readline. For example, Ctrl-r for reverse interactive search, Ctrl-a/e for start/beginning if line, Ctrl-w for deleting a word.

  • source
  • [–] 1 point 10 hours ago
    [–] 100 points 1 day ago (24 children)

    You mean something like this?
    ls /your/long/path/name
    cd !$

  • source
  • hideshow 24 child comments
  • [–] 98 points 1 day ago* (18 children)

    To add,

    !$ gets replaced with the last word from the previous command line

    !! Repeats the most recent command

    !-N Repeats the Nth previous command

    !string Repeats the most recent command that began with 'string'

  • source
  • parent
  • hideshow 18 child comments
  • [–] 21 points 20 hours ago (5 children)

    If !$ isn’t pronounced “ba-ching!” I’m quitting Linux

  • source
  • parent
  • hideshow 5 child comments
  • [–] 9 points 19 hours ago (4 children)

    Better than "bang-ching" which sounds racist to me. lol

  • source
  • parent
  • hideshow 4 child comments
  • [–] 2 points 2 hours ago* (2 children)

    the (ng) is silent when used in compound punctuation in ba(ng)

  • source
  • parent
  • hideshow 2 child comments
  • [–] 45 points 1 day ago (2 children)

    I just learned more about Linux than I did from my whole IT degree.

  • source
  • parent
  • hideshow 2 child comments
  • load more comments (1 reply)
  • load more comments (2 replies)
    [–] 19 points 22 hours ago

    You can hit TAB in any decent shell to autocomplete paths. Personally I highly recommend fish

  • source
  • [–] 29 points 1 day ago (2 children)

    so you have better answers but still going to do mine. up arrow and change ls to cd.

  • source
  • hideshow 2 child comments
  • [–] 24 points 1 day ago

    You may want to learn about the shell's "history expantion" functions. as an example:

    ~$ ls ~/Documents/taxes/tax_year_2012/2012-12-01.txt  
    /home/tom/Documents/taxes/tax_year_2012/2012-12-01.txt  
    
    ~$ cd !!$:h  
    cd ~/Documents/taxes/tax_year_2012  
    
    ~/Documents/tax_2012$ pwd  
    /home/tom/Documents/taxes/tax_year_2012  
    

    Here the string "!!$:h" is basically the last command's [ !! ] last argument [$], stripped of its last path component [:h].

  • source
  • [–] 19 points 1 day ago (2 children)

    Type cd then press Alt+. and it'll copy the last argument of the previous command, make sure it's what you want, and press Enter.

  • source
  • hideshow 2 child comments
  • [–] 3 points 19 hours ago (1 child)

    Nice, I don't remember having seen that before. I'm sure I'll just keep using !$, because muscle memory, but I like seeing new approaches.

  • source
  • parent
  • hideshow 1 child comment
  • [–] 2 points 15 hours ago

    The shell, and lots of other things that take per-line input, use readline to do it. The readline man page is... extensive... to say the least. There are many more useful shortcuts in there, but I doubt anyone uses more than a fraction of them.

  • source
  • parent
  • [–] 8 points 22 hours ago

    For me I replaced cd with https://github.com/ajeetdsouza/zoxide

    cd to anywhere from anywhere, don't even need to type the whole thing. Algorithm: https://github.com/ajeetdsouza/zoxide/wiki/Algorithm#matching

  • source
  • [–] 9 points 23 hours ago

    The way I solve this problem is to use nnn instead of ls. It's a full file manager for the terminal but so light and quickly started that it's as convenient as ls (a lot more so actually). You can navigate around your file system with vim-like key bindings and then have the option to exit either to the directory you started from or the one currently displayed.

  • source
  • [–] 10 points 1 day ago* (5 children)

    What I do is: Up, Home, type cd , Delete (hold/repeat as many times as needed), Enter.

    The Home key instantly brings your cursor to the start of the command line (before the ls), even if the command is long enough to wrap.

    I'm not a terminal guru, and I don't aspire to become one. I don't want to memorize arcane symbols that each has a subtly different meaning, and I especially don't want to execute them before I see explicitly what they're going to do. So while the top comment of cd !$ is a perfectly good and correct answer, I offer this alternative in case you, like me, like to see what you're doing as you do it. Home and End are pretty good.

  • source
  • hideshow 5 child comments
  • [–] 5 points 22 hours ago

    The seconds I’d save remembering which combination of dollar signs and exclamation points to use would never help me find a better job or otherwise improve my life. I’m okay with the up arrow too.

  • source
  • parent
  • [–] [S] 6 points 1 day ago (3 children)

    I had already found ctrl+a that brings me back to the front of the line. It's bit more convenient for my hands than home.

  • source
  • parent
  • hideshow 3 child comments
  • [–] 5 points 1 day ago (1 child)

    I have a really strong muscle memory for Home so it's super convenient to me, but ctrl+a sounds just as good.

  • source
  • parent
  • hideshow 1 child comment
  • [–] 2 points 21 hours ago

    Minor addition: I've had some shells where home will bring you back to the beginning of the current line, not the whole command. Ctrl+Home always brings you to the very start of the command if this applies to you

  • source
  • parent
  • [–] 2 points 19 hours ago

    Bookmarking this whole thread

  • source
  • [–] 4 points 1 day ago (2 children)

    Is it uncool to use a GUI?

  • source
  • hideshow 2 child comments
  • [–] 5 points 1 day ago (2 children)

    If you're using bash and haven't modified the readline default, which is to use emacs keystrokes:

    $ ls foo/bar/baz

    Just what I wanted!

    Control-P Control-A Alt-D cd Enter

  • source
  • hideshow 2 child comments
  • load more comments (2 replies)

    In addition to

    ^ls^cd
    

    I mentioned in another comment, I highly recommend you try "z", installable on macos via "brew install z" (not sure if it's available on linux package managers). Suppose you want to jump to ~/Desktop/project1/foo, you can just type "z foo". It works without a full path, from anywhere, as long as you cd'd in there at least once.

  • source
  • load more comments
    view more: next ›