Vote Up
4
Votes
Vote Down

Kudos to Stavros (LHB) for this one.

There’s a certain sub-species of LooninTroll who spends all the time he can spare from reinstalling his distro by using Google to find obscure “issues” on Windows.

These issues rarely, if ever, have anything to do with hardware support or file system instability or general usability … you know, the ephemeral trivia that have plagued Linux on the desktop since the beginning of the Torvalds Epoch (circa 1992).

Nope, they’re to do with common, day-to-day tasks such as using a DOS command box to move files with really long filenames around. This is never a problem on Linux, except when it is, and then TheresAPatchForThat™.

A properly constructed argument along these lines will end with the triumphant “You can use a Linux Live CD to fix that!”

Except, of course, you can’t.

#1 Posted by kurkosdr on Jul 30, 2010 8:37 PM

Funny how everyone picks on the DOS Command box’s inability to parse filenames longer than 8.3 without the ~1/~2 convention, yet the terminal of Loonix can’t even parse filenames with spaces, period.

Seriously, say I have four files in my home directory: 'Awesome’, 'Vacation.avi’, 'Awesome Vacation.avi’ and 'Awesome_Vacation.avi’. I want to delete the 3rd one using the terminal.

Can the Loonix’s uberterminal do that? No. If you type 'rm Awesome Vacation.avi’ you will lose the 1st and the 2nd, but not the 3rd. If you type 'rm Awesome?Vacation.avi’ you will lose 3rd AND 4th.

Something about that stupid idea of using the whitespace character both as an argument seperator and as a legit character for filenames. Of couse, Windows had a fully developed GUI so that you will never need to use the CLI, Loonix has… never mind.

#2 Posted by ChrisTX on Jul 30, 2010 8:52 PM

@Kurkosdr

Hate to correct you, but that’s not quite true, these work:
rm “Awesome Vacation.avi”
or
rm Awesome\ Vacation.avi

Don’t ask me why the hell you need to escape that, if you’d have a file named Awesome\ Vacation.avi, rm Awesome\ Vacation.avi would not work, and would delete the spaced character instead.

However, bash can’t access these names by tab, if you’d try to do that, it would delete Awesome and Vacation.avi. The same is true for the \ example, the correct syntax to delete it is rm Awesome\\\ Vacation.avi . Don’t ask me how the hell the user is supposed to figure that out, because the tab completion won’t help you. Oh wait, I think there was some really nice and long man page about this….
And yes, that is the most possible retarded way to implement this.

( Surprisingly, PowerShell can do this properly and will put the name in quotation marks )

#3 Posted by DrLoser on Jul 31, 2010 1:37 PM

@Christx:

Are you serious? It’s simple. Just think “escape, escacpe, escape!”

Oh … wait … that would be “escape” as in “escape this antiquated mess.”

The sad thing is, *nix proponents since the year dot have sold the system on the fact that “you can run any shell you want.” Well, yes. But they’re all crap. (csh is the worst, but this is not a competition.)

It would be seriously trivial to build a proper shell on Linux that passes all wildcards, quoted etcs, to a program that then chooses the best-of-breed shared object library to parse the result.

Do they do that? No.

Why not? Because, ultimately, they just don’t care.

What they claim, and what they do, are two entirely different things.

#4 Posted by kurkosdr on Jul 31, 2010 3:39 PM

@CHRISTX: Thanks for the quotations tip. Those whitespaces in filenames are bugging the hell out of me everytime I need to rm a file in the debian systems at the university I am in, especially when I am at home and have to access them via putty/ssh.

I thought people had invented remote desktop since the Windows 2000 era, but I guess I was wrong. CLI for you!

Anwyay, it just doesn’t make sense: If quotations remove any possible ambiguity, then why the hell not use them all the time and make the shell to require them in order to parse any filename?

Oh yeah, it’s because some loonix/unix guru’s grew up in a time keyboards were so klunky that they could make you break a finger when typing, so they have an adversion against typing 2 characters more in the CLI. Never mind that this convinience is putting people’s files at risk, like that friend of mine who had a file called '-r’ and tried to rm it. I think it’s the same kind of syntactic sugar that makes C/C++ the mess that is to understand.

Sad thing is that this ambiguity is studied at universities as a good thing, just like having different libraries to do the same thing, with unstable APIs.

#5 Posted by DrLoser on Jul 31, 2010 6:21 PM

Well, C can hardly be accused of having “syntactic sugar.” I’m not sure that C++ does, either — but you can always have fun trying to work out why Java’s “generics” are (Object) the way (Object) they are (Object).

For a good read on why the *nix shell is the way it is, see web.mit.edu/~simsong/www/ugh.pdf.

You must be signed in to leave comments.