Who are these for? People who use the terminal but don’t like running shell commands?

OK sorry for throwing shade. If you use one of these, honestly, what features do you use that make it worthwhile?

  • I never use them but I can see the point. Like when you’re poking around for a log file, not sure what it’s called or where it’s stored and just going on a hunch…but you’re in an SSH session and don’t want to deal with X shenanigans.

    It’s a legit PITA to ls, look for files, cat/tail them, etc. sometimes you just want to ls -alR but your corporate build runs tmux on SSH sessions with no configuration so you can’t scroll back since your shortcuts don’t work so you have to pipe everything to more and it just sucks.

  • With some people, it’s just easier and faster to navigate a filesystem structure if you can just see it all laid out in front of you visually instead of “cd-ing” and “ls-ing” every directory you traverse just to see what’s in it and having to “pwd” and remember where you are. Some of us didn’t do too well at the memory game as kids.

  •  tal   ( @tal@lemmy.today ) 
    link
    fedilink
    19
    edit-2
    1 year ago

    I use dired in Emacs.

    I assume you mean “why use these instead of file-manipulation commands in bash?”

    I use both.

    There are a handful of tasks that are easier in dired than bash.

    • Making small modifications to filenames that aren’t amenable to programmatic changes. You can just toggle the read-only flag on a dired buffer, edit the filenames, and then hit C-c C-c when done.

    • Marking a set of files to perform an operation on where that set cannot trivially be expressed using tools in bash. Think, oh, “which movies do I like enough to want to keep around”. This is especially handy when moving a number of files to another directory, which I think is why people often like the two-pane approach of orthodox file managers. Dired is not an OFM, but it can act like that if you have two dired windows open, using the other as the default target for the operation.

    • Dealing with filenames containing obnoxious-to-type characters like weird Unicode stuff. If I want to delete the one file in a directory whose name consists of a bunch of kanji, it’s easier to just manually select it in a list.

    • Navigating where I usually want to see the contents of each directory. I’ll often navigate around in dired while building up up an emms playlist. Browsing a list of movies to play.

    EDIT: It’s also not really a file manager, but I do use ncdu to see what’s taking up space on a disk. I’ll also use du -h|sort -h|less, but ncdu is, like file managers, more convenient when just browsing around the tree and looking at each as one does so, while manually selecting a few items to operate on (deleting).

    EDIT2: I’ll also add that virtually all of the people I know in person who love OFMs – I’m in the US – are from Eastern Europe, moved to the US from Russia, Ukraine, Romania, etc. I dunno why that is. Maybe just spreading along language lines. Maybe there are or were issues with switching between Cyrillic and Latin character stuff akin to my above irritation with kanji. But someone from Eastern Europe might have more input to answer your question.

    EDIT3: The link I provided above for OFMs has a very long discussion from the author on why he likes OFMs (though not all terminal file managers are OFMs, many, like Midnight Commander, are). Reading it, I’d say that there’s a lot of overlap with how Emacs works with dired+TRAMP+eshell and some other Emacs packages, though they accomplish similar goals in a different way – sort of making integrated functionality that spans network file transfer, file management, text editing, file archive access, console commands, with a common toolset available for all. Would be quicker to learn an OFM than Emacs, though Emacs is gonna provide a considerably-larger set of functionality if you’re willing to spend the time on it.

    EDIT4: There are also a number of OFMs in Emacs, like Sunrise Commander, so I guess I shouldn’t really treat it as an either-or matter.

  • for example, when you need to copy some files and not the other, you can take your time selecting the specific files you need to copy instead of writing the list of files in one command. When you want to check the contents of a lot of files, you can just open file preview. Etc, basically sometimes CLI isn’t as convenient as TUI/GUI

  • Most systems I interface with are remote or headless. Forwarding X is annoying as fuck and to be avoided at all cost, so the more I can do though the terminal, the better.

    PS: I’m also old enough to have been a regular user of Norton Commander, the application MC (Midnight Commander) is based on (inspired by).

    EDIT: Norton Commander was a DOS app and so useful that it prompted Midnight Commander, one of the earliest applications developed for Linux. So MC kind of pre-dates Linux in a way.

  • Well, for schoolwork, I mount my Google Drive storage onto my ~/googledrive directory (where I store all of my schoolwork) and usually use mc to navigate. Although, I am quite comfortable with the terminal. Its just that I have a lot of subfolders and going to a specific subfolder in mc is usually faster than doing “cd ~/googledrive/subfolder-with-long-path”.

        • It’s for when you have really nested directories. It happens especially when you’re working in a file space used by others. I used to have a folder I would often reach called /media/nas/documents/personal/school/foo/bar/foobar2001/projectA

          I ended up going back to that project so many times, I could just do j projectA and get there from anywhere. “Why not use a symlink?” I hear you say. Well it’s because I often have to go to projectB or another which was in another really nested dir. Or I needed to jump to another directory which was equally as nested, and only had to use it frequently for like a week or so. Making and deleting symlinks all the time wasn’t practical. Not to mention some software doesn’t properly follow symlinks

      • Kseniya

        I use rclone. The command I use to mount my GDrive is basically:

        rclone mount "GoogleDrive:" ~/googledrive --vfs-cache-mode full --daemon

        And then I could access it (almost) as if were a regular USB drive mounted onto my filesystem (by doing cd ~/googledrive). Only difference is that it is a bit slow, as none of the files ever get synced to the computer’s hard drive (all changes are immediately uploaded to Google servers), and I cannot change the filesystem permissions (they are always a+rw for all of the files).

  • Depends on what I’m going to do. I often use mc if I need to do something to a bunch of files but not all and the filenames are not good to filter on except by human eye. For example when I want to move a bunch of mixed downloaded stuff from my dl machine into grouped folders on my NAS. It’s easy to go down through the list and select what to move from the download folder (where it’s all in a disorganized pile) into the grouped destination folders.

    If I work on individual files, or something that’s easy to filter through wildcards I use terminal commands.

    It’s not for or against, it’s about choosing the most convenient tool for the job.

  • I use a mix of shell commands, terminal file manager, and GUI file manager depending on the task at hand.

    The terminal file managers are quicker to navigate to a particular file/directory since it doesn’t require typing commands but I can still navigate with a few key strokes as opposed to using a GUI.

  • One of the first things I install is mc (sometimes ranger). It’s just a really fast way to get around.

    CLI is fast, but GUI is (if done right) intuitive. Running mc is both. Very fast way to explore/get around file system.

  • As a Linux newb, it’s easier than opening a SFTP session next to the terminal as I’m learning the file structure so it’s either that or cd then ls for every damn folder because I don’t know where I am or what’s in this folder vs that. Ranger has been nice for me as I learn.