Can't relate. I use shell all the time, and I always use spaces in file paths, especially to make sure scripts I make still work then
Programmer Humor
Welcome to Programmer Humor!
This is a place where you can post jokes, memes, humor, etc. related to programming!
For sharing awful code theres also Programming Horror.
Rules
- Keep content in english
- No advertisements
- Posts must be related to programming or programmer topics
i y'all just started using fish shell, you'd have proper shell completions and argument splitting that doesn't care about spaces in file names
Microsoft intentionally made programs install to C:\Program Files on Windows 95+ to force programmers to deal with spaces in filenames.
Someone make one of those "statements made by the utterly deranged" memes about it, please and thank you.
what is even more funny about this is that the name of that directory used to be locale-dependent, so in sweden it was just called "Program", completely nullifying that idea.
C:\Program Files
C:\Program Files (x86)
C:\ProgramData
C:\PROGRA~1
The fucking parenthetical x86 absolutely kills me. I don't normally wish dick cancer on people,
No this is just clever
I've recently learned that in Linux, you can use emois in filenames. I died a ~~little~~ lot inside when I learned that.
On Linux file systems you can use any character except NULL, and / is a reserved character.
E.g. on ext-4 "All characters and character sequences permitted, except for NULL ('\0'), '/', and the special file names "." and ".." which are reserved for indicating (respectively) current and parent directories."
I once accidentally created a file with a newline character in it... it was pretty tricky to fix from command line.
Arrest this person
This is absolutely haram
it was on accident, habibi, I swear 😁. I messed up some cmake code for preprocessing .txt ascii sprites into constants and accidentally created this abomination
I once made a script to delete .o, .lib, and .so files from my huge dev folder to free up space on my home partition.
It did not go as planned.
This is why you shouldn't parsels
output btw. Use find
and read
instead
I actually did this a lot on classic Mac OS. Intentionally.
The reason was that you could put a carriage return as the first character of a file, and it would sort above everything else by name while otherwise being invisible. You just had to copy the carriage return from a text editor and then paste it into the rename field in the Finder.
Since OS X / macOS can still read classic Mac HFS+ volumes, you can indeed still have carriage returns in file names on modern Macs. I don't think you can create them on modern macOS, though. At least not in the Finder or with common Terminal commands.
In filenames? AMATEURS! Use obscure Unicode in your passphrases for maximum security. Ctrl-Shift-U, enter arbitrary code point, bam! 🦊
Works even better with a Compose key and a nice, chonky .XCompose
file to throw some gr∑∑k letters around, for instance, like some confused script kiddie. :)
On topic: There are multiple variants of spaces in Unicode. You're welcome, and now go and create something utterly deranged with that information.
Some grSSk letters?
unix filenames are just string of bytes, the operating system does not interpret it in anyway. this is a much saner approach compared to Windows where language settings can change file system behavior.
I'm just gonna pretend I didn't hear that.
⏰️.🪵
ChatGPT is taking notes
I\ don\'t\ know\ what\ you\ mean,\ I\'ve\ never\ encountered\ any\ annoyances.
Are you typing the whole filename by hand? Tab expansion exists, you know?
If it fucking works...
Sometimes it does. But not always.
Zsh changed my life, but I still hate escape chars in my command lines for readability reasons
Now I use lowercase and underscores everywhere.
Hyphens > underscores for filenames because all web standards prefer hyphens so if you ever want to network your files its a much smoother experience!
not sure why the default behavior is this:
file\ name\ with\ a\ bunch\ of\ spaces
instead of this:
"file name with a bunch of spaces"
but you can just press "
before pressing tab to auto-complete, and it will use the 2nd form
I mean, at least in Bash tools like ls
do use quotes by default:
$ ls
filename_without_space 'filename with space'
But yeah, tab expansion uses backslashes, sadly.
the struggle between spaces in filenames look cute and oh fuck what's the code to reference a space in a filename in terminal?
Just put the whole thing in quotes. You might have to escape extra sets of quotes, usually with a backslash.
I very intentionally have all my code in Personal Projects 🥰
and Work Projects 🏦
directories so I can find bugs in the handling of file paths.
i think i am old. i grew up using DOS, and really hated spaces in filenames and folders because they appreared truncated at the first space with a tilde and index of that file/folder representation.
ex: C:\folder name is bad\ == C:\folder~1
i hated that so much that when i got to windows 3.1 i refrained from using spaces (some command line was still necessary in w3.1)
i have jept that habit through the years, so when i moved from windoes to linux, my natural instincts of snake_case_folder_names made it so i didnt have to change : D
That's not even DOS I think. As far as I know Win 95 came up with this monstrosity in an attempt to circumvent the 8.3 character limitations present in older versions of DOS.
" is your friend
Yep, exactly. And tab. \ is weird at first but makes sense if you think about it
Windows is stupid as shit, trying to shift+right click > open Powershell in a path containing a space results in it throwing an error, and you have to paste the path in yourself anyway
If your code is written well, it shouldn’t matter.
They're annoying to deal with when interactively using command-line shells, especially so when pasting unquoted and unescaped file paths, doubly especially so with Bash where parameter expansion makes no goddamn sense if you know at least one other programming language
My work has me working with Matlab Simulink paths, which may (and sometimes actually do) contain newlines.