" is your friend
Yep, exactly. And tab. \<space> is weird at first but makes sense if you think about it
deleted by creator
I still use spaces
agreed, “still worth it”
I do, however, tend to keep spaces out of my folder names so i can just use quotes at the end.
/Images/Halloween/Projections/“Creepy Crawlies.mp4”
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
Mv /home/“$USER”/Downloads /home/“$USER”/downloads
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
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.
One of the fun things about modern Windows is that ~1 shit still appears every once in a rare while. Gotta love just stacking more and more shit on top of ancient systems in the name of backwards compatibility!
I think you’re misremembering a little. Long filenames was introduced in Win95.
Yea, Win 3.1 didn’t support long names - that came with Win95. Win 3.1 was a shell on DOS.
But I understand - it all blends together after um… 40 years (ouch!).
I\ don\'t\ know\ what\ you\ mean,\ I\'ve\ never\ encountered\ any\ annoyances.
'I don\'t know what you mean, I\‘ve never encountered any annoyances.’
Single quotes don’t allow any escaping in shell, you need
'I don'\''t know what you mean, I'\''ve never encountered any annoyances'Or, in Zsh with
setopt rcquotes:'I don''t know what you mean, I''ve never encountered any annoyances'Oh right, good catch. That’s me shell scripting while in a meeting. 🫠
Good use of a meeting to be fair
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.
If you intend on using that with tab completions, you will have extra work to do.
Some shells put the path in quotes automatically as you attempt to complete anything with spaces in it.
Yeah, just need to set it up correctly.
Or you can also put a
\in front of the space
That’s what backslash-tab is for
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
Example of how parameter expansion matters?
Generally if you are pasting file paths there is a better way to do that. Use find with exec, or xargs, or a for loop. Or, get the list in Vim and escape (quote) every line at once. Unless you have double quotes in the filename too (which is actually a crazy thing) it shouldn’t be a big deal.
Expansion matters because using parameters without quotes automatically splits words, and IIRC a quoted array parameter can still be split into its members — as opposed to Zsh, where word splitting doesn’t happen unprompted and quoted array parameters are flattened into a single string.
Generally if I want to run
$HOME/random executable with spaces.exethrough Wine in a terminal I copy the path in Dolphin (CTRL+SHIFT+C, or CTRL+ALT+C idr) and paste it, within quotes if needed (the four extra key inputs are the annoying part).I find that much faster than manually typing
find "$HOME" -name "random executable with spaces.exe" -type x -exec wine "{}" \;, or opening an editor to insert backslashes.Why on earth not just type
wine ~/randomand then hit tab to autocomplete? Or you could dowine `echo random*`AFAIK, if $file is a filename with spaces, then
some_util ${file}will not split the filename.If the path to the dir is longer than
$HOME, say,$HOME/Tools/modding/hd2-audio-modder/wwise/v123456789_idr_but_its_a_long_one/random file name with spaces, it makes more sense.I’ll try using the braces syntax, if it does prevent word splitting I wasn’t aware of it, though it’s still slightly inconvenient (3 key inputs for each brace on my kb) and I’d probably still use quotes instead if I had to use Bash and had the file path in a variable for some reason.
… though at this point I’m probably overthinking it, atm I don’t recall better examples of my distaste for Bash expansion shenanigans.
Did some testing, here’s what I found.
Beware, it devolves into a rant against Bash and has little to do with the original topic - I just needed to scream into the void a little.# Zsh function argn { echo $#; } var='spaced string' argn $var # Prints 1: makes sense, no word splitting here var=(array 'of strings') argn $var # Prints 2: makes sense, I'm using a 2-wide array where I would # want 2 arguments (the second one happens to have # a whitespace in it)# Bash function argn { echo $#; } var='spaced string' argn $var # Prints 2: non-array variable gets split in 2 with this simple reference; # I hate it, but hey, it is what it is argn ${var} # Prints 2: no, braces do not prevent word splitting as I think you suggested var=(array 'of strings') argn $var # Prints 1: ... what? echo $var # Prints array: ... what?!? # It implicitly takes the first element? # At least it doesn't word-split said first element, right? var=('array of' strings) argn $var # Prints 2:
My bad, I was thinking of zsh. And I think it’s configurable there too so may not behave that way according to your settings. But it is at least the default on Mac.
I use Zsh too, though at this point is becoming detrimental to my (already limited) Bash skills because of features like the
${^array}{1,2,3}syntax which I use in some scripts of mine, which in turn I wouldn’t dare try to translate to Bash.
Computers should just know when I want a space to be part of a file name, and when I want them to be argument separators. No more escaping or quoting.
Need AI?
whitespaceIsTheEnemyCan’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
smells like skill issue tbh
tools which cant handle being installed/run on directories with spaces are so annoying
You are clearly not a command line user :)
I vaguely remember
zshin Manjaro (by default) having a tab completion that automatically added the slashes.
Never set it up myself though.But I really hate having to worry about quoting my file variables in scripts.
So much, that after a certain complexity, I just give up the script and make the thing in C++.You can just start the path with a quote and it will auto complete with spaces. I spend a lot of time correcting files with spaces replaced now. The spaces are better. I think music is the most annoying, since I like to use tools like EasyTag to extract metadata from filenames.
So please stop.naming_files.like_this.its_stupid
You can just start the path with a quote and it will auto complete with spaces.
Oh, you’re right. I just tried it out and it worked the same way.
I wonder what gave me the misconception the it doesn’t by default.
tools which cant handle being installed/run on directories with spaces are unacceptably common











