I’ve just started my Linux journey earlier this year. As a goal to learn how to self-host applications and services that will allow me to take back some control of my data. Immich instead of Google Photos, for example.

I have a local server running Unraid and 22 docker containers now. And then a VPS (Ubuntu 20.04 LTS) running two apps. I’ve learned a ton but one thing I can’t seem to wrap my brain around is navigation through the file structure using only terminal. My crutch has been to open a SFTP session in Cyberduck to the same device I’m SSH’d to and try to figure things out that way. I know enough to change directories, make directories, using Tree to show the file structure at different levels of depth. But I feel like I’m missing some efficient way to find my way to files and folders I need to get to. Or are y’all just memorizing it and know where everything is by now?

I come from a Windows background and even then I sometimes catch myself checking via explorer where a directory is instead of using CMD or PowerShell to find it.

I’d love to hear any tips or tricks!

  • jernej@lemmy.ml
    link
    fedilink
    arrow-up
    7
    ·
    1 year ago

    I use ls and ranger, to find files i use find -name and remember that * is used as a wildcard so you can use it when searching for stuff with in incomplete filename or when copying or moving files/directories. You could also use colorls to add some flare to your ls, and oh-my-zsh for syntax highlighting and tab autocomplete

    • nathris@lemmy.ca
      link
      fedilink
      arrow-up
      4
      ·
      1 year ago

      I know there is probably a historical reason but I hate how find parses its arguments.

      Any other app would be fine --name or find -n.

      Every time I use it I have to spend a few minutes checking the results to make sure that it’s actually doing what I want it to do.

      • bellsDoSing@lemm.ee
        link
        fedilink
        arrow-up
        3
        ·
        edit-2
        1 year ago

        That’s one of the reasons why the more modern fd is a nice alternative: it accepts command line args as you’d expect.

      • BaumGeist@lemmy.ml
        link
        fedilink
        arrow-up
        2
        ·
        1 year ago

        Also every other search program has the needle as a positional argument and either reserves a named parameter to specify haystack, or has the haystack come after.

        Apparently the find devs thought users would spend more time using it as an alternative to ls -a than finding specific files

    • palordrolap@kbin.social
      link
      fedilink
      arrow-up
      1
      ·
      1 year ago

      Depending on system, something like locate/mlocate might be installed, and is almost certainly available if the following seems like a good idea.

      Tools/daemons like them are quicker for finding files - basically because they index all files except those in specified places. (Or potentially only those in specified places depending on tool/configuration.)

      That way, rather than find -name 'some_wildcard_string', it’s instead locate 'partial_filename_match or locate --regex 'some_regex_string'.

      As for speed: locate / | wc -c returned 565035, the count of files currently indexed by mlocate on my computer, in 0.3 seconds. Quite a bit quicker than find! (locate / literally returns any file with a / in the full pathname, which basically means every single file in its DB).