My life would be a lot easier if there were some more restrictions on file-names, it's true. Just cutting out newlines would save me a lot of grief.
At my work I'm doing a lot of sysop/devops/admin stuff for a media production team. The team-wide project file structure contains a whole bunch of folders starting with '-'. It's not a problem, you just have to write all scripts being aware of it.
As we're making videos about different places around the world, it's not uncommon for editors to copy and paste things (including unicode weird other languages, etc) into filenames from OSX Finder.
I got caught out recently when someone had pasted in some text with newlines. Boy can that ever run havok.
The thing which got me was that BSD md5 on OSX and GNU md5sum on CentOS handle things differently (using \ before a filename with control characters in it on one of them). So creating a md5 list on one computer and comparing it against a list made on another computer was failing, even though the files where exactly the same.
Also annoying is trying to write scripts which handle " and ' in names.
The typical BASH tutorial response is, 'use "$VAR"! That always works!'
Unless you are sending a command to run on a remote server, or putting together a rsync command that runs over SSH. Then, it breaks. So:
will have problems. (If I remember correctly). I think this one was fixed with something odd like using ' quotes, and then replacing all ' in the filenames with '\'' (which ends the current string, puts a single quote on its own as a string, and then starts the string again, but treats them all as one long string).
99% of my problems went away when I switched most scripts over to python.
(And, yes, started adding more and more weirdo filenames into my /shell/ /script/ unit tests...)
That said, I'm very much in favour of allowing any kind of multi-lingual multi-script UTF-whatever filenames. I'm not even totally convinced that new-lines and other control characters are always wrong.
However, some better tools and much better awareness for people would not go astray.
Almost exclusively an OSX house, but with one Linux box for the LTO archive (tape is still cheaper than 'the cloud' when your internet isn't that fast and a single event/project can be over a terrabyte of footage...).
We may switch over to a linux or BSD based server at some point in the future. Others in our organisation have deployed synology machines with great success.
At my work I'm doing a lot of sysop/devops/admin stuff for a media production team. The team-wide project file structure contains a whole bunch of folders starting with '-'. It's not a problem, you just have to write all scripts being aware of it.
As we're making videos about different places around the world, it's not uncommon for editors to copy and paste things (including unicode weird other languages, etc) into filenames from OSX Finder.
I got caught out recently when someone had pasted in some text with newlines. Boy can that ever run havok.
The thing which got me was that BSD md5 on OSX and GNU md5sum on CentOS handle things differently (using \ before a filename with control characters in it on one of them). So creating a md5 list on one computer and comparing it against a list made on another computer was failing, even though the files where exactly the same.
Also annoying is trying to write scripts which handle " and ' in names.
The typical BASH tutorial response is, 'use "$VAR"! That always works!'
Unless you are sending a command to run on a remote server, or putting together a rsync command that runs over SSH. Then, it breaks. So:
will have problems. (If I remember correctly). I think this one was fixed with something odd like using ' quotes, and then replacing all ' in the filenames with '\'' (which ends the current string, puts a single quote on its own as a string, and then starts the string again, but treats them all as one long string).99% of my problems went away when I switched most scripts over to python.
(And, yes, started adding more and more weirdo filenames into my /shell/ /script/ unit tests...)