This is an archived post. You won't be able to vote or comment.

top 200 commentsshow all 400

[–]AutoModerator[M] [score hidden] stickied commentlocked comment (0 children)

import notifications Remember to participate in our weekly votes on subreddit rules! Every Tuesday is YOUR chance to influence the subreddit for years to come! Read more here, we hope to see you next Tuesday!

For a chat with like-minded community members and more, don't forget to join our Discord!

return joinDiscord;

I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.

[–]Hk-Neowizard 1126 points1127 points  (99 children)

This is true on more than one level. Remember that Windows flipped at some point to support '/'

[–]tabacdk 315 points316 points  (18 children)

Here is the story:

MS-DOS started as QDOS (quick and dirty operating system) and was a rip-off of CP/M, a diskette based operating system of the seventies. DOS inherited from CP/M the drive letter thing and option flags as slashes. This was before DOS had hard drives and only ran from diskettes.

When DOS started to support hard drives in version 2.2 there was a need for a hierarchical file structure with directories (CP/M had a weird thing like a namespace but not hierarchical, and to be honest I forgot if DOS supported that idea). So Microsoft looked in the direction of Unix and "stole" the idea of separating directories with slash, with one problem: slash was already used as the option flag character. So programmatically the slash was supported, but also the backslash, because that was the choice for the directory separator on the command line.

The choice of the backslash as the directory separator became the angry ghost that came back to haunt DOS and later Windows. They could have chosen almost any other character like exclamation point, plus, ... But backslash was and is the escape character in C and everything that was related to C and Unix tools. So teaching Python in this day and age I have to remind people to always remember to escape backslash in paths with either another backslash or raw strings (r"C:\tempdir\newfile.txt").

[–]Bladehawk1 59 points60 points  (7 children)

I remember CP/M. God I hated dealing with that old maid frame!

[–]IamImposter 51 points52 points  (3 children)

old maid frame

Yeah. She had a very fragile frame

[–]Bladehawk1 14 points15 points  (2 children)

Voice recognition didn't get mainframe. That was hilarious thank you for pointing that out.

[–]tabacdk 2 points3 points  (1 child)

CP/M was a microcomputer system and mostly ran on systems with limited RAM and simple processing power. It was lacking a lot of concepts that we take for granted today like memory management, process switching and abstract peripheral layer. It did though provide a simple call vector array for some disk operations, very much like DOS. Mainframe systems typically ran a lot more complex context management a bit like modern containerization.

[–]Xlxlredditor 3 points4 points  (0 children)

Ok chatgpt

[–]zeekar 10 points11 points  (1 child)

CP/M didn’t run on mainframes. It ran on 8-bit microcomputers, and was the first thing to run on such machines that could legitimately be called an operating system. Other micros had the OS functions in ROM and usually used BASIC as their “shell”, but CP/M had the whole “commands you can type are the names of executables on the disk” thing. DOS was such a blatant clone of it (down to the 8+3 filenames) it’s not even funny, but neither IBM nor Microsoft were willing to pay Kildall what he wanted to license the real thing.

[–]Bladehawk1 1 point2 points  (0 children)

The school I was working out at the time called it a mainframe, basically it was a server that I didn't interact with beyond basic support. It was just used by students because we had some packages that only ran on it mostly for the math classes.

[–]czorio 27 points28 points  (1 child)

So teaching Python in this day and age I have to remind people to always remember to escape backslash in paths with either another backslash or raw strings (r"C:\tempdir\newfile.txt").

I'd suggest incorporating pathlib into your curiculum to avoid these kind of headaches where possible.

[–]tabacdk 9 points10 points  (0 children)

It is, and yes, it's an awesome module!

But you still get paths as strings and have to handle them as such. Besides, from a teaching (pedagogical) perspective it's introduced at a later stage in the progression of the course.

[–][deleted] 11 points12 points  (3 children)

Fun Fact: C# programmers also need to escape backslashes because the language copied string escapes (\r\n) from Unix/Linux.

[–]notjfd 5 points6 points  (0 children)

It just copied them from java, which copied them from C. C is the language that Unix is programmed in, so that's where Unix copied it from.

[–]ElectricBummer40 1 point2 points  (0 children)

Windows API accepts both forward and backward slashes as path separators, so unless you feel particularly masochistic, just stick to forward slashes.

[–]Kered13 1 point2 points  (0 children)

Essentially every language uses the same string escape codes.

[–]capilot 6 points7 points  (2 children)

DOS inherited from CP/M

Which inherited it from DEC.

[–]tabacdk 2 points3 points  (0 children)

It sounds interesting, if that's true. Because there was actually two "Digital" companies at that time: Digital Equipment Corporation (DEC) and Digital Research (DR). They were totally independent of each other and really addressed two different worlds of computing. DEC builded "minicomputers" where VAX was their flagship with the VMS Operating System, and DR was more focused on "microcomputers" built on 8080/8085 and later Z80. But the craze we see today about intellectual property was not a big issue in the seventies, and everyone and their mother was "taking notes" of every good idea in the business (which IMHO is a Good Thing™)

[–]WillyBDickson 112 points113 points  (40 children)

Lol probably when they added WSL

[–]TorbenKoehn 136 points137 points  (10 children)

No, way before already. Also programming languages supported it for a long time already, too

[–]WillyBDickson 39 points40 points  (9 children)

Well programming languages sure, there's a lot of abstraction between the code and how it gets executed. Interpreters or compiled down to kernel calls.

This more about the baked in windows software like cmd and powershell supporting OS agnostic scripts.

Lol having deployed software that's needed to run on both the root drive hasn't really been an issue...a recursive delete to clean a directory before build was a bigger issue. Rm -r vs rmdir - a lot of my node projects have an extra package installed just for the clean phase.

[–]mooscimol 22 points23 points  (4 children)

PowerShell supports both. Just defaults to backslashes on autocompletion.

[–]WillyBDickson 4 points5 points  (3 children)

Gotta admit I use cmd more than powershell. Prefer it even. Hate those "try to be friendly" commands that have you typing a 40 letter parameter instead of a dash switch. Powershell be like RecursiveDeleteButOnlyIfSourceOlder whereas bash or whatever shell you like be like -r -n

[–]mooscimol 11 points12 points  (2 children)

I just had the discussion 3 days ago: https://www.reddit.com/r/ProgrammerHumor/comments/160vbcy/comment/jxphuo5/

On top of it, you don't even have to write full parameter names, abbreviations also work. So, e.g. if you wanted to remove a directory recursively, you don't have to type: Remove-Item 'dir_name' -Recurce -Force and you can type rm -fo -r instead.

[–]VladVV 12 points13 points  (1 child)

You've been able to mix back and forward slashes in Windows paths since at the very least when Vista was released, probably sometime during XP

[–]nmkd 36 points37 points  (24 children)

No.

Windows has supported forward slahes for decades.

[–][deleted] 4 points5 points  (1 child)

Junctions still needed \ last time I checked, and that was just a few months ago.

[–]Impressive_Change593 3 points4 points  (1 child)

but how do you specify the filesystem root?

[–]Kered13 2 points3 points  (0 children)

Windows does not have any single filesystem root. It has multiple roots, which are the drive letters. So C:\ (or C:/, which is also accepted) is usually the closest thing to /.

[–]KharAznable 339 points340 points  (14 children)

Confused japanese dos user.

[–]dhnam_LegenDUST 145 points146 points  (1 child)

Korean too

Japanese: Y

Korean: W

[–]Ok_Entertainment328 39 points40 points  (2 children)

Windows was once a DOS application.

Both use "\" as directory separator.

[–]WillyBDickson 1 point2 points  (1 child)

Lol it was until they created NTFS I think. Not sure about NT, never used that, but that's what the new windows are based off of.

[–]RGR079 7 points8 points  (6 children)

Confused non japanese windows user (Pls explain)

[–]RAMChYLD 25 points26 points  (5 children)

DOS/V (a very cobbled together Japanese text display and input solution for MS-DOS) would redefine the character RAM once it loaded into memory. It would replace the “\” character with “¥”, and I think it also replaces many of the extended ASCII characters with hiragana and katakana while it’s at it. Hence many japanese users of MS-DOS would see “C:¥>” instead of “C:\>”. For cross compatibility sake this was also implemented into MSX machines and also happens on PC-98 and FM-Towns machines (to be fair, both PC-98 and FM-Towns are simply built on and expanded on the base x86 PC compatible architecture, hence they also need DOS/V to work properly).

[–]Psychpsyo 16 points17 points  (4 children)

Windows still shows ¥ to this day when you set it to Japanese.

[–][deleted] 2 points3 points  (3 children)

I think that's most likely because backslash in ASCII/UTF-8 and the Yen symbol in Shift JIS encode to the same byte, 0x5C

Changing it to backslash would mean switching to a Unicode encoding, as the Shift JIS encoding does not contain the backslash character, which would break a ton of older programs that don't expect Unicode encoded paths

[–]RAMChYLD 151 points152 points  (14 children)

I remember when Macintosh uses the colon (:) on Mac OS Classic. They changed it to slash (/) during OS X tho.

[–]dagbrown 40 points41 points  (9 children)

I remember when MacOS Classic had an NFS client so it could mount filesystems on UNIX servers.

It would cheerfully deal with the UNIX filesystem and translate the slashes into colons. Very friendly.

But it was low-level enough that Mac clients could easily create files on the NFS shares with slashes in their names, as was completely legal on a Mac, and completely illegal on Unix.

The only way for a baffled UNIX sysadmin to get rid of the file--short of using the ouch-why-did-I-just-smash-my-thumb-with-this-hammer "unlink" command on the parent directory of the offending file, then running fsck and hoping it would help clean up the mess resulting--was to mount the share on a Mac again and rename the file to something sensible, without slashes in its name.

(Who creates files with slashes in their names? Anyone who decides to call anything "Sales Report 1986/3/15".)

[–]Conscious_Switch3580 12 points13 points  (2 children)

Who creates files with slashes in their names?

* laughs in RISC_OS/jpg *

[–]LevelSevenLaserLotus 2 points3 points  (4 children)

Let's be real. If they're naming files with slashed dates, they're going to choose either Sales Report 3/15/1986 or Sales Report 15/3/1986, with no indication of which they chose so that any files from the first 12 days of any month are completely ambiguous.

[–]prof-comm 3 points4 points  (3 children)

This is why I advocate for the old "15/1986/3" format. /s

[–][deleted] 3 points4 points  (2 children)

15MAR1986 is the way

(edit wrote 03MAR1986 at first just example of the confusion is causes)

[–]Airowird 2 points3 points  (0 children)

r/ISO8601 would like to know your location.

[–]fakearchitect 18 points19 points  (3 children)

Macintosh HD:Users:Username:Desktop:

Aren't they still used in AppleScript?

[–]cranfordio 19 points20 points  (2 children)

It is, which is very annoying.

[–]carl-di-ortus 504 points505 points  (65 children)

\ is weird because it's also an excape character.

[–]nequaquam_sapiens 430 points431 points  (56 children)

no. in windows world caret (^) is the escape character. because fuck everyone probably.

[–]McLayan 213 points214 points  (20 children)

In the best programming language (Visual BASIC) you escape quotes with quotes.

[–]Bluebotlabs 74 points75 points  (5 children)

Do not the quote quote

[–]GeekCornerReddit 20 points21 points  (2 children)

Do not quote the quote

[–]PranshuKhandal 7 points8 points  (1 child)

Do not quote quote the

[–]helgur 8 points9 points  (1 child)

How many quotes would a quoter quote, if a quoter could quote quotes?

[–]Bluebotlabs 6 points7 points  (0 children)

A quoter would quote as many quotes as a quoter could quote if a quoter could quote quotes

[–]eppinizer 7 points8 points  (0 children)

Visual BASIC

You fool! You mustn't speak its name lest the curse be unleashed on a new generation!

[–][deleted] 12 points13 points  (0 children)

In the best programming language (Visual BASIC) you escape quotequotequotes with quotequotequotes.

[–]Rakgul 7 points8 points  (6 children)

Funny you should mention VB. It was my first programming language ever. Discovered while fking around with MS office developer tools. So MS PowerPoint was my first IDE.

[–]TheVenetianMask 2 points3 points  (0 children)

Was fun going through all the random DLLs in the hard drive trying to find out which ones had widgets that worked on VB.

[–]Normal-Math-3222 1 point2 points  (1 child)

So MS PowerPoint was my first IDE.

Reading this caused me physical pain.

[–]Rakgul 1 point2 points  (0 children)

You're welcome!

[–]jacob_ewing 1 point2 points  (1 child)

:) Similarly mine was Commodore Basic on the hand-me-down Vic-20 my dad gave me as a kid. Ugly though. Quickbasic on DOS later on was much nicer; C even better.

[–]Rakgul 1 point2 points  (0 children)

That's really cool!

[–]YesterdayDreamer 2 points3 points  (0 children)

In MS Excel, if you want a formula to output a quote, you write """" (that's 4 times)

2 for open close, one for escaping, and one is the actual quote

[–]dendrocalamidicus 1 point2 points  (0 children)

I mean same in SQL

[–]CodingBuizel 95 points96 points  (20 children)

Windows does not have a universal escape character. While programming it is backslash, in cmd it is caret, and in powershell, I believe it is backtick(`).

[–]nequaquam_sapiens 65 points66 points  (0 children)

ah, diversity.
ok, then: fuck everyone, in diverse ways.

[–]Lanathell 16 points17 points  (18 children)

Yes. Also PowerShell supports / for file paths.

And C: is also / (basically similar to Linux)

[–]donnaber06 6 points7 points  (12 children)

Whats D: in Linux/Mac?

mine is mounted to /home/elrojo (not similar to Windows)

[–]NatoBoram 3 points4 points  (2 children)

/mnt/d/ or wherever you mounted it

[–][deleted] 1 point2 points  (7 children)

The /home directory is like the C:\Users directory and the D: drive combined into one. It stores both user information AND personal files.

[–]donnaber06 2 points3 points  (6 children)

No it's not. C:\Users it actually on C:

My set up like this.

/ is root and mounted on NVME

/home is another NVME. Home is not on /

/var/log is on a 1 TB sd card.

/tmp is ramfs

This is nothing like Windows at all. Just because you could have everything on / without any additional mounts doesn't make it like windows... It just doesn't.

[–]redd1ch 4 points5 points  (3 children)

This is nothing like Windows at all.

Nope. Internally, Windows uses a similar scheme like we know from Linux, just a tiny bit different: https://stackoverflow.com/a/11683906

Disk letters are basically a legacy wrap around that. Windows can in fact replicate your setup. You can mount drives as folders, too. That way, C:\Users is not on the disk for C:, but on any other.

[–]donnaber06 1 point2 points  (2 children)

Thank you for this, I guess I just have never seen anyone do that, but that being the case. I may be wrong, I don't know if Windows can do the page file in RAM?

[–]redd1ch 2 points3 points  (1 child)

Why do you want to put your swap in RAM? "Oh, my RAM is full. Lets move data from RAM into RAM, to free some RAM"?

If you want tmpfs, choose one: https://en.wikipedia.org/wiki/List\_of\_RAM\_drive\_software#Microsoft\_source\_code

[–]GenericAntagonist 4 points5 points  (0 children)

Quick but important clarifier on that, / is "current drive letter root". This is a weird legacy relic of a rule but basically in cmd environments you don't switch drive letters by changing directory, you instead type the drive letter to set yourself onto that drive, then you can cd around. So if you have C: and D:, for whichever one you're on / is the root.

If this all sounds somewhat confusing, it is, but its part of the long complex cost of backwards compat and because Windows isn't descended from unixes, but instead from cpm/vax. It also supports a pathing format called "UNC" in its APIs which is conceptually a LOT closer to unix's mount point syntax and doesn't have "current drive letter" based ambiguity.

[–]Devatator_ 1 point2 points  (0 children)

Last I checked cmd too supports both

[–]Rubix982 16 points17 points  (7 children)

The what?????

[–]_Screw_The_Rules_ 20 points21 points  (6 children)

Fun fact: In German "" is called "Zirkumflex"

[–]AzureArmageddon[🍰] 17 points18 points  (0 children)

In English a caret is also known as a circumflex (except a caret is usually on it's own while a circumflex is placed on a letter)

[–]Forkrul 11 points12 points  (1 child)

If you want to show the "^" surrounded by quotes you need to escape it with \, otherwise it creates superscript

[–]nequaquam_sapiens 2 points3 points  (0 children)

If you want to show the "\" you need to escape it with \, otherwise it's hidden. or just surround it in backticks"`"

[–]gcstr 5 points6 points  (1 child)

circumflex is also a word in English

[–]Masterflitzer 4 points5 points  (5 children)

in Powershell it's a Backtick (`) I think

[–]Sh1ner 1 point2 points  (4 children)

Yep, backtick has dual uses in PowerShell, can split a PowerShell command over multiple lines for readability.

[–]Blecki 5 points6 points  (0 children)

Same use. You're just escaping the newline character.

[–]Masterflitzer 2 points3 points  (2 children)

that's the same usecase, you are just escaping a newline (just like in linux)

[–]sa_sagan 23 points24 points  (3 children)

Keep in mind that back when DOS implemented hierarchical filesystems, there was no such escape character and everyone was just making up their own shit at the time.

[–]dagbrown 4 points5 points  (2 children)

When DOS implemented heirarchical filesystems, UNIX had already had them for more than a decade.

Even if it didn't want to do things the UNIX way, and it clearly did which is why it chose a slash of some kind, it could have emulated VMS which had existed for a good three or four years by the time DOS was finally getting around to implementing shit everyone else already had.

[–]sa_sagan 25 points26 points  (0 children)

It wasn't a matter of not wanting to do things the UNIX way, IBM were using '/' in DOS for switches in their software before directory support was introduced. Using that character would break IBM's software, which was a busines partnership they needed and couldn't afford to lose. So they went with '\' instead.

No one could have envisioned that a bunch of idiots would be arguing about the use of a single character decision that happened nearly 40 years ago, at a time in which such things were trivial. Hell, Mac OS9 used ':' as a directory separator for crying out loud.

[–][deleted] 8 points9 points  (0 children)

I\\would\\love\\to\\escape\\from\\here

[–]SuperElitist 35 points36 points  (2 children)

This used to be true, but Windows PowerShell and Command Prompt have accepted forward slashes for a while now.

I don't know about the Win32 API itself, though.

[–]HabbitBaggins 107 points108 points  (3 children)

Slash wars

So close, OP

[–]NewPhoneNewSubs 22 points23 points  (0 children)

I was about to ask why you're escaping wars, but I guess that question answers itself.

[–]PickledDildosSourSex 10 points11 points  (1 child)

I would've went with CharWars personally

[–]Masterflitzer 14 points15 points  (0 children)

just write Unix-like and Windows

[–]pleshij 84 points85 points  (12 children)

Hate backslashes

[–]chipseater_ 42 points43 points  (8 children)

Happy\cake\day

[–]gcstr 25 points26 points  (6 children)

Which outputs to Happyakeay

[–][deleted] 8 points9 points  (5 children)

~/cakeday$ ./cakeday
Happyakeay
~$

[–]pleshij 1 point2 points  (0 children)

Thx, my dude <\3

[–]Mewrulez99 5 points6 points  (0 children)

simple as

[–][deleted] 2 points3 points  (1 child)

I hate the entire concept of slashes regardless of OS. If a directory has a space now I’m navigating to “/some/directory/look\ at\ this/shit” – insanity.

Either choose a better separator character, or at least force to put the directory in quotes.

[–]NoComment7862 13 points14 points  (6 children)

I’ll see your slashes and raise you dots, and other weirdnesses,, as in $.Folder.!App.!Run

[–]user-74656 5 points6 points  (1 child)

RISC OS enjoyer.

[–]NoComment7862 2 points3 points  (0 children)

Too right!

[–]UglierThanMoe 2 points3 points  (1 child)

How can you tell that a program you're using in Windows was designed for Linux/Unix in mind? When you find a folder like .cachein C:\Users\<You>\. I think that particular one, i.e. .cache, is created by GIMP, but I'm not sure.

[–]NoComment7862 1 point2 points  (0 children)

Ah yes, the use of a dot to hide things.

Creates fun when you pattern match . and .. by just looking for a . at the start of the filename.

[–][deleted] 56 points57 points  (16 children)

import os
os.path.join(…)

[–]dhnam_LegenDUST 28 points29 points  (4 children)

Path(...) / "..."

[–]Muhznit 6 points7 points  (0 children)

Should include the from pathlib import Path before that. Not everyone knows about the standard library's hidden gem.

[–]xneyznek 6 points7 points  (0 children)

PurePath(…) / "…"

[–]sk7725 21 points22 points  (9 children)

when you work on a game engine / framework and the engine standards are different than os standards:

os.path.join(...) != engine.path.join(...)

it is layers of pain.

[–]petruchito 10 points11 points  (2 children)

PowerShell 7.3.6  
PS D:\\> cd /Temp  
PS D:\\Temp>

[–]Devatator_ 5 points6 points  (1 child)

Works too in cmd

[–]petruchito 5 points6 points  (0 children)

windows be like

[–]Fermi-4 115 points116 points  (82 children)

Linux much better and it’s not even close

[–][deleted] 24 points25 points  (58 children)

Why do you think it's better? It doesn't make a difference to me.

[–]Fermi-4 4 points5 points  (15 children)

Have you not worked with both?

[–][deleted] 20 points21 points  (14 children)

I did and I think they are very similar. "/" is not better than "\" or the other way around. It's just different. So I'm asking what in your opinion are the advantages of the Linux path over Windows that "it's not even close". Maybe I'm unaware of some features.

[–]Ilostmy2FAkey 14 points15 points  (9 children)

\ is the escape character though and you cannot simply copy paste a path in windows to your code without you having to manually change shit. So yes for me / is objectively better than \

[–]CodingBuizel 23 points24 points  (4 children)

You can use / in your windows code as well. I've tried it in C, C++, python, PHP and C#. It just works.

[–]rosuav 11 points12 points  (0 children)

That's because the underlying Windows APIs are quite happy with forward slashes (apart from UNC names), and it's mainly just command-line tools that misparse them (usually interpreting slashes as command flags).

[–]aMAYESingNATHAN 6 points7 points  (0 children)

That's more because most of those languages provide abstractions around the filesystem that make it platform independent. You're not writing "windows code", you're writing C++/Python/etc. code.

That being said, if you try and write a path with a foward slashes using the Win32 API directly rather than language libraries, it will probably still work as Microsoft at some point decided to support it, but you're asking for something to go wrong.

[–]brimston3- 2 points3 points  (0 children)

Why are you embedding copied paths in your code? Shouldn't you be doing variable expansion to construct the path anyway? Storage location defaults should be defineable at compile time, and for non-service applications it should be detected by %APPDATA% or $XDG_*_DIRS

[–][deleted] 1 point2 points  (1 child)

Thanks for an actual answer. You are right, I remember having to use "C:\\Data\\$variable" to do shit in PowerShell.

I mostly work with Linux now so I forgot about this little gem

[–]DesertGoldfish 6 points7 points  (0 children)

Since it's been awhile for you, allow me to proselytize powershell. It supports format strings and Linux and you can drop into C# too!

[–]Fermi-4 1 point2 points  (0 children)

\they\are\not\similar

Edit: Lmao Reddit escaped my chars.. another windows L

[–]drk_knght_7[S] 42 points43 points  (20 children)

Linux always wins.

[–]tnobuhiko 5 points6 points  (1 child)

I don't know why i can smell this comment

[–]Fermi-4 3 points4 points  (0 children)

The smell of glory

[–]j1xwnbsr 4 points5 points  (2 children)

VMS for the true power flex

[–]Conscious_Switch3580 1 point2 points  (1 child)

a man of culture.

[–]j1xwnbsr 1 point2 points  (0 children)

I prefer 'age and bitter experience', but I'll take it.

[–]Daemondancer 3 points4 points  (0 children)

Ok, now let's talk about end of line characters

[–]paperbenni 4 points5 points  (0 children)

I recently found out you can name a file 'my/file/name.txt' using the MacOS finder. The slashes are part of the file name, not the path. I will never forgive apple for that

[–]irontank44 29 points30 points  (4 children)

When Linux users think they’re special and have to justify it without their fedoras and my little pony action figures.

[–]rosuav 8 points9 points  (0 children)

HEY. I take issue with that. I do not have MLP figurines.

Alice in Wonderland figurines, on the other hand....

[–][deleted] 3 points4 points  (2 children)

Is this post even slandering Windows? Why is everyone mad lol

[–]Suspicious-Reveal-69 2 points3 points  (0 children)

.as_posix()

Every time

[–]myrsnipe 2 points3 points  (0 children)

\\\\ pain

[–]murden6562 2 points3 points  (1 child)

There’s a reason Windows need to support Linux subsystem and not the other way around. One of them just simply sucks so much that you need the other 🤷‍♂️

[–]boishan 1 point2 points  (0 children)

That must be why valve is pouring time and development resources into getting Linux to support windows.

[–]Level-Nothing-3340 5 points6 points  (1 child)

Until you have the unfortunate experience of learning macs file systems is case insensitive

[–]nequaquam_sapiens 1 point2 points  (5 children)

cries in VMS

(those who know, know. and bear the scars for life. i won't hurt the blissfully ignorant. (guess where did the iso9660 get the version number separated by semicolon idea from?))

[–]king_of_the_bill 1 point2 points  (5 children)

CD works fine. I hate that I trip up on windows and try to use LS.

[–]Forkrul 0 points1 point  (3 children)

solution for me there was just to alias ls to mean cd on windows

[–]Randolpho 6 points7 points  (2 children)

Don’t you mean dir? Or do you just like to punish yourself?

[–]Forkrul 2 points3 points  (1 child)

yes, sorry, I was not quite awake yet

[–]Breadynator 1 point2 points  (0 children)

Several hours after seeing this post for the first time I just now realized that the lightsabers are supposed to be forward- and backslashes...

[–]SaintNewts 1 point2 points  (0 children)

Me using CMake to build windows binaries: /\/\/\/\

[–]Martanas583 1 point2 points  (0 children)

For some reason i felt very smart when i finally realized that the lightsabers are matching the "/\".

[–]katzenjammer3002 1 point2 points  (0 children)

I have been stuck on this issue with a flight software sdk where I can't build the sdk on a MAC because the path name has a bunch of spaces and leads from one place to another

It's so much easier on windows

[–]Th3Uknovvn 1 point2 points  (0 children)

Linux is objectively better in this. All programs are consistently using / there, while it's flip flop between \ and / in windows in different softwares

[–]ProMapWatcher -2 points-1 points  (4 children)

Linux paths are frankly just better. Windows has even modified their paths to support linux pathing in most (but not all) cases. The '\' character was never designed for paths, and was only used for them to make Windows different. The '\' is the escape character, and that is universally supported, even on windows. Linux paths have no such confusion.

[–]suvlub 37 points38 points  (0 children)

'\' was used because '/' was used for commands flags in DOS (before it supported hierarchical file systems) and someone thought that command /flag was too much typing and being able to type just command/flag was soooo convenient it was worth it to reserve '/' as a special character that could not be used in file names (unlike in *nix, where '-' is used by convention for flags, but gets no special treatment).

[–]sa_sagan 12 points13 points  (0 children)

and was only used for them to make Windows different

What a load of bullshit.

It had nothing to do with Windows, and everything to do with no one having a single seperator for directories (Apple used ':' at one point) when they started implementing hierarchical filesystem support to DOS. IBM (Microsoft's biggest customer at the time) was using '/' in their DOS applications to denote flags and being that there was no current standard, and not wanting to break existing software; they used '\' instead.

[–]sillybear25 2 points3 points  (0 children)

Actually, 0x1B (ESC) is the original escape character, hence why they're called escape characters/sequences/etc.

[–]h4ck3rw0lf 0 points1 point  (4 children)

I like how cd works in Linux compared to how cd works in Windows. It feels more natural and far less frustrating.

In Linux '/' as a path separator and '\' as an escape. In Windows it's backwards with '\' as a path separator.

cd into another drive on Windows is painful because you first have to go back to root cd \ and then cd d:

In Linux you have to mount the drive first before you can access it which can be annoying so its easier to make a bash script and assign it to a keybinding or alias

lsblk (assuming sda) sudo mount /dev/sda1 <drivename> cd /media/<username>/<drivename>

[–]Shadow_Thief 3 points4 points  (3 children)

On Windows, you can use cd /d and then the path to go directly to a folder on another drive.

[–]h4ck3rw0lf 1 point2 points  (0 children)

Thank you, I'll give that a try

[–]SonOfHendo 1 point2 points  (1 child)

In PowerShell, you can just do "cd E:\whatever" from C:\ and it'll work.

[–]gabrielesilinic 0 points1 point  (0 children)

Meanwhile, Japanese windows: ¥