I run Mylar on my Xubuntu server to manage my comic collection. I found out recently that there’s a tool that can convert the embedded .jpgs to .webp to save space, but it only works on cbz files and not cbr (zipped vs rar for those who don’t know). I wanted to convert all of my cbr to cbz so that I could run the tool on all my comics, so I needed to search hundreds of subdirectories for them and move them to the same folder to be processed.
Under Windows, I’d just type *.cbr into the search bar built into Explorer from the root comic directory, hit enter to get a list of files, select them all, and move them to the new folder. On Xubuntu, it’s nothing like as simple.
I found the search option in Thunar which opened Catfish, typed in *.cbr, and got a no files found message. After looking through the very limited options, I started searching for a way to do it. About thirty minutes later I’d found dozens of links telling me to use different, Terminal only, tools, but nothing about how to search subdirectories from the Catfish GUI. Purely by accident, I found a post from 2012 that mentioned the fact that Catfish doesn’t use wildcards, so just search with .cbr, something that’s not mentioned in the official docs.
I tried it, and it searched the subdirectories too, and found my files! Except there was no way to copy or cut and paste, just open, show in file manager, copy location, save as, or delete. No good options for almost 500 files across several dozen locations.
I ended up asking Chat GPT how to do it, and doing it through the Terminal, using this:
‘find . -type f -name “*.cbr” -exec mv {} /path/to/destination ;’
This is pretty basic functionality, and I had to resort to getting help to use the Terminal :(
Terminal isn’t over complicated, it’s the most basic interaction with operating systems and was the first mainstream UI to ever exist because it’s a natural extension of what interacting with a computer truly is.
Terminal has very basic, particular syntax: Command <optional parameters> [required parameters]
It has some useful additions as well, like
| to pass the output of the precious command to another command
> to write to a file
< to read from a file
This basic structure allows additional tools to be installed and run without having to learn a unique GUI with all the quirks of the GUI designer for each application. You just add new commands and move on with your life, maybe referencing the manual page to check which parameters you need.
Windows has a very particular GUI design that everyone knows because of the way Microsoft captured the market in the early days, before laws prevented them from doing so. Windows is esoteric, it has a variety of GUI philosophies all jumbled together. Explorer/control panel exists next to “Metro” apps, now “Windows apps” and they both do separate things without ever integrating the two properly.
Windows is arcane and understanding it fully is thousands of hours of practice, if you actually try new things. Linux is perfectly usable from command line with just a few dozens of hours of practice.
I say all this as a primarily Windows desktop user who uses Linux when it comes to actually getting things done. If we taught Linux to our children in schools and if businesses provided as much Linux training to workers as they do windows training, the discussion we’d be having would be about how windows is too complicated and just needs a UI similar to the ones available with Linux.
Command <optional parameters> [required parameters]
Aren’t the kinds parentheses the other way around?
Probably? I didn’t check on whether angle brackets or square brackets are for optional parameters. It’s an arbitrary thing and my meaning is entirely decipherable in any order.