I'm not exactly sure if this is a "right" question to post here. I'm probably asking more about "opinions" than actual categorical answers (of those that either work or don't, and that's it).
I was wondering what name separators would be the most linux friendly (or more specifically, Bash friendly) and human friendly at the same time.
Let's say I want to create a directory that contains something related to Mr. Foo Bar (Foo being the first name, Bar being the last name)
Having the name "Foo-Bar/
" is very convenient. -
is a "regular" character, it doesn't need to be escaped, it clearly shows that Foo
and Bar
are two separate things... Nice.
Now, "Foo.Bar
" is a bit trickier. Someone may think that Foo.Bar
is actually a file (at a first glance, specially if you don't have terminals with coloring enabled) where "Foo
" is the filename, and "Bar
" the extension.
I could also use "Foo Bar
", but then I need to escape the whitespace when I want to access the directory and, if I want to list the contents of the parent directory (where Foo Bar
is located) and put said list in a bash array, the white space is going to cause trouble (a lot). Not nice.
Brackets ()
also cause a lot of issues. They also need to be escaped, then to cause trouble with commands as scp
... Not nice.
So... the question (at last) is: If you need to make the name of a file clear and meaningful at a fist glance, and you need to use separators, what do you use?