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?
EDIT: Just to clarify, my point is I would almost always reach for fzf
, fd
, or rg
before trying to manually search through a directory in a file manager.
EDIT2: A few people mentioned selecting files in a TUI. I don’t find it any harder to select files using autocomplete. It might even be faster to start typing a name than it is it “scroll” through a list of files.
EDIT3: Here’s a neat tool that can add some flexibility to your shell workflow: https://github.com/urbanogilson/lineselect
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.
I use them for filemanagement on my server over ssh
Oh very good idea. I didn’t even consider this
Genuinely curious what you did consider.
My daily driver. I hit the terminal a lot
I think – though I was not one of them – that that’s how people tended to use OFMs in their heyday. Like, my “home” program, the program that I’m doing most other things from, is bash, whereas I think for a lot of people on DOS systems, it was an OFM rather than command.com.
When I was a kid, it was Norton Commander
What is the advantage over using SFTP with Nautilus/Dolphin/… ?
It’s faster. Because I have to move directorys relatively often from different drives on my server and nemo seems to be moving the files to my local machine before moving them to their right location on the server.
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.
Is it common than whenever somebody brings up “emacs” its a wall of text? Please don’t take seriously.
Yes, Emacs users are very thorough so expect lots of detail.
It has paragraphs and an unordered list so it’s technically not a wall of text :)
There is truth in it though, it’s fun to ramble on about all the cool stuff that we get to do with Emacs.But why would anybody read that in a topic about terminal file managers.
The comment was talking about dired which is a file manager that runs inside Emacs and Emacs can be used in terminal mode.
-
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.
It just strikes a weird niche IMO. If I wanted to explore a directory, I wouldn’t recursively cd; I would use
fd
orrg
. You’re looking for content, right? That’s how you search a file system for content.Yes but GUI file managers exist and already lay everything out for you by design. Refusing to use one, just because you think you’re too cool to use a mouse is just plain elitism.
Ever hear of headless servers and networking equipment? I’m not gonna forward X through every ssh connection I make to my home machines. Not all of us are using Linux only on the desktop. It’s running my NAS, media streaming server, firewall, DNS ad filter, home automation server, and my security camera DVR. None of which have GUIs installed.
They’re better than
cd something ls cd something-else ls cd ../.. ls
But you don’t need to
cd
before runningls
. And in most cases you don’t even needls
, autocompletion is enough.I would never suggest doing this though. There are better tools like
find
,fzf
orfd
.Isn’t your shell showing autocomplete options on oressing tab? Like the subdirectories? That way you don’t need multiple cd and ls calls
Well… WinSCP or something like that is even better.
They are faster and more efficient for most basic file operations.
Id actually say, for super basic stuff the shell commands are faster. And super complicated stuff, shell commands are faster.
But it’s that set of things in the middle of the bell curve that are more complicated that moving a single file and less complicated than running a bash script one liner that strings together 8 commands that these terminal browsers really shine.
My favourite one is renaming a directory full of files in
nnn
. It opens in vim, and I’m in my happy place, where I really know how to edit text (or, in this case, filenames). Great when there’s some minor variation between a lot of files. Full previewing before saving, multiple operations handled before doing anything etc.This is the most compelling use case I’ve heard so far. I’d love to do a bulk rename by just having all of the file names on separate lines in a helix buffer.
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.
Sometimes they are more convenient, than cd ls mv cp everything, when you don’t have access to a file explorer.
Specially if you are working with a server via ssh, or some machine without any Desktop Environment installed.
Sometimes it helps to have a visual aide for what you’re doing. CLI/TUI apps are often faster, or when accessing remotely, lower bandwidth.
Also, let people enjoy thing.
It’s really annoying navigating a filesystem in the shell.
Either you remember exactly where a file is located, have a reference, or you’re going to be doing a lot of “ls, cd, ls, cd”.
That’s not necessarily true. There are programs/plugins like
scd
inzshell
which make your life easier. https://github.com/ohmyzsh/ohmyzsh/blob/master/plugins/scd/README.mdEither you remember exactly where a file is located, have a reference, or you’re going to be doing a lot of “ls, cd, ls, cd”.
You do know tools like find and locate are a thing? If anything it is the graphical tools that do not have a lot of flexibility here.
🥱
There’s always someone like you, lol.
Glad I’ve learned to just cut you out and move on.
Have a nice day!
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
Nostalgia for those 80s and 90s kids who grew up with norton commander ;-)
People who can use them effectively tend to be a way faster with the regular admin work. Also, they can do some things which are not that simple on the command line (browse through tarball, browse through remote directories).
Eh… for home servers, when you want to take a quick glance at the files (maybe you are running a script that copies files around after some time…?). Then again, I don’t really find em useful when I have
ls -al
shoved inside my brain. It’s (kind of) “second nature” at this point.I use it on my home server, TUI only, when I want to organise my files
@GustavoM @tatterdemalion
Same. Maybe I should start using one. ☺️
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.