Sponsored Content
The Lounge What is on Your Mind? Filenames with hyphens - UNIX style? Post 302638035 by jlliagre on Wednesday 9th of May 2012 08:30:43 PM
Old 05-09-2012
@methyl: While spaces are obviously not, hyphens are recommended by the Unix standard except as first character.

@guest115:

Unix kernels do not make any limitations in filenames outside two forbidden characters, / and null i.e. \0 and two reserved filenames: . and ...

File systems, especially non Unix native ones, might be stricter, even when used on Unix.

For portability, POSIX recommends restricting filenames to the portable filename character set, i.e. uppercase and lowercase a-z, digits, dot, hyphen and underscore.

There are no specific recommendations in Unix about whether using hyphens or underscores as a separator. Files with embedded spaces are on the other hand not recommended but supported anyway. They just need proper quoting/escaping when used in the command line. Hyphens pose no problem outside when they are the first character of a file, in which case some tricks are usually required depending on the command used.

I just checked on a Solaris 11 fresh install and got these statistics analyzing 168522 filenames:
  • 27.57% contains at least an hyphen
  • 23.13% contains at least an underscore
  • 4.50% contains both an hyphen and an underscore
  • 0.00% contains a space character (not a single file)
Other statistics that might be interesting:
  • 2.34% are plain numbers
  • 11.89% are only composed of lowercase characters & optionally digits
  • 0.71% are only composed of uppercase characters & optionally digits
  • 22.87% have no extension
  • 94.53% comply with the POSIX portable filename character set: A-Z a-z 0-9 . - _
On this system at least, there is a slight preference for hyphens compared to underscores (I expected the opposite) but both are very common anyway, more than half of the files use at least one of these separators.

Last edited by jlliagre; 05-10-2012 at 02:40 AM..
These 4 Users Gave Thanks to jlliagre For This Post:
 

9 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Unix History Question: Why are filenames/dirnames case sentsitive in Unix?

I tried looking for the answer online and came up with only a few semi-answers as to why file and directory names are case sensitive in Unix. Right off the bat, I'll say this doesn't bother me. But I run into tons of Windows and OpenVMS admins in my day job who go batty when they have to deal... (3 Replies)
Discussion started by: deckard
3 Replies

2. Shell Programming and Scripting

Unix filenames and spaces

I have files on my unix boxes that users have created with spaces. Example: /tmp/project plan ls -l "/tmp/project plan" works fine. $/tmp>ls -l "/tmp/project plan" -rw-r--r-- 1 root other 0 Jan 31 12:32 /tmp/project plan I created a file called test and put just the... (2 Replies)
Discussion started by: x96riley3
2 Replies

3. Shell Programming and Scripting

[Unix] a dos style rename wont work

Hey guys i'm creating a dos style rename script, so if a user types say q14.* as the 1st param and b14.* as the 2nd and will rename all q14 files to b14 but keep the extensions, so i've developed nearly the full script "i think", if i use echo(echo "if $1 had been renamed it would now be... (3 Replies)
Discussion started by: fblade1987
3 Replies

4. What is on Your Mind?

Looking for a "Motivational Poster" Style unix command?

I am trying to figure out a sort of Motivational line that I could write as a short unix command... I don't know too much but something like Get everything you want in life sudo (get everything) (you want?) (life directory) Any ideas? Thank You very much Brad (4 Replies)
Discussion started by: ridesurf
4 Replies

5. Shell Programming and Scripting

Renaming mutiple files with hyphens in name

I have searched throught a host of threads to figure out how to rename mutiple files at once using a script. I need to convert 200+ files from: fKITLS_120605-0002-00001-000001.hdr to eStroop_001.hdr fKITLS_120605-0002-00002-000002.hdr to eStroop_002.hdr and so forth.... What is... (5 Replies)
Discussion started by: akenne3
5 Replies

6. Shell Programming and Scripting

Using grep with hyphens

This is on a RHEL 6 box with bash 4.1.2 I'm trying to to use grep to only find those lines containing matches that form whole words. The -w option works fantastic unless of course that word has a hyphen. The problem is I will get a hit on "test-group" which is a good thing, but I will also... (3 Replies)
Discussion started by: woodson2
3 Replies

7. Shell Programming and Scripting

Appending date to UNIX Filenames

Hello, I have a file name in the below format and have to append the date as _$currdate. kchik_UK_lo.txt_$currdate. The above should be the format and I dont want to put entire filename as above in the code, but it should give me the output as the above filename.Can anyone please help... (7 Replies)
Discussion started by: harika03
7 Replies

8. Shell Programming and Scripting

Script in Perl or awk to remove multiple hyphens

Dear all, I have a database of compound words. I want to retain only strings with a single hyphen and identify those strings which have more than one hyphen. I am giving an example below test-test test-test-test test-test-test-test-test good-for-nothing The regex/script should remove all... (11 Replies)
Discussion started by: gimley
11 Replies

9. What is on Your Mind?

Coding Style at UNIX.com forums

Hi, as I mentioned in this thread(https://www.unix.com/shell-programming-and-scripting/280737-awk-function-return-permutations-n-items-out-m.html), a helpful coding style may improve overall value and support for people who come here and want to learn things the participants from unix.com have... (2 Replies)
Discussion started by: stomp
2 Replies
All times are GMT -4. The time now is 09:20 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy