Sponsored Content
The Lounge What is on Your Mind? Filenames with hyphens - UNIX style? Post 302639173 by jlliagre on Friday 11th of May 2012 09:39:44 AM
Old 05-11-2012
Unix is very permissive in what it accepts but quite restrictive in what it recommends. Your first reply seemed to imply Windows was too permissive while Unix wasn't. The reality is the opposite. Windows has more restrictions and peculiarities like refusing a file to be named null.h or com0.c, having a colon in its name, having a space as its last character and so on, not to mention the way it preserve case but doesn't allow files with the same name but different cases to stay in the same directory.

In any case, your example obviously violates the POSIX recommendations but is still a valid Unix filename. It is obviously unacceptable to Windows and possibly other OSes and defeat non rock-solid scripts.

If your backup software has issues processing this filename, that's a bug or a limitation of the storage format it uses, the OS or the file system. The venerable tar utility has no issues handling it:
Code:
$ touch 'C:\March report - with summary figures'
$ tar cvf foo.tar *es
a C:\March report - with summary figures 0K
a files 8388K
$ tar tvf foo.tar
-rw-r--r-- 60004/60004      0 May 11 17:14 2012 C:\March report - with summary figures
-rw-r--r--   0/0   8589076 Nov  9 16:07 2011 files
$ mkdir extract
$ cd extract
$ tar xvf ../foo.tar
x C:\March report - with summary figures, 0 bytes, 0 tape blocks
x files, 8589076 bytes, 16776 tape blocks
$ ls -l
total 2
-rw-r--r--   1 jlliagre jlliagre       0 May 11 17:14 C:\March report - with summary figures
-rw-r--r--   1 jlliagre jlliagre 8589076 Nov  9  2011 files

About your last request, here are the numbers I got:
  • 0.74% have colons (1242)
  • 0.00% hashes (2 files out of 168522)

Last edited by jlliagre; 05-11-2012 at 10:57 AM..
 

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
This  is  a  slightly  lobotomized kermit.  The help command, the
script facility, and the automatic dial  support  have	been  re-
moved.	The ? and ESC commands still work, so there is still rea-
sonable built-in help.	The only V7 kermit feature that does  not
work  is  the  ability	to see whether there are input characters
waiting.  This means that you will not be able to ask for  status
during a file transfer (though this is not critical, because ker-
mit prints a dot every so  often  and  other  special  characters
whenever  there  is an error or timeout).  Start kermit, and then
type the following to open a 2400 baud session, for example:
(It is more convenient if you put these commands  in  .kermrc  in
your home directory, so that they get done automatically whenever
you run kermit.)  This will connect you to the modem or  whatever
on  the  serial  port.	 Now log into the other system.  When you
want to transfer files, run kermit on the other system.   To  it,
type  This puts its kermit into a sort of slave mode where it ex-
pects commands from the kermit running on your MINIX system.  Now
come back to the command level on MINIX kermit, by typing the es-
cape character followed by c.  (Kermit will tell you the  current
escape character when you do the connect command.)  At this point
you can issue various  commands.   Your  kermit  will  coordinate
things	with kermit on the other machine so that you only have to
type commands at one end.  Common commands are
Filenames can include wildcards.  By default, kermit works  in	a
system-independent,  text  mode.   (In effect it assumes that the
whole world is MS-DOS and converts end of line and file names ac-
cordingly.)   To send binary files, you will want to type on both
ends before starting any transfers.  This disables CR LF to  new-
line  conversion.   If	both  of  your systems are some flavor of
UNIX, you might as well put this in .kermrc on both ends and  run
in  binary  mode all the time.	Also, if both systems are UNIX it
is recommended that you use on both ends.  This causes it to keep
file  names unchanged, rather than mapping to legal MS-DOS names.
Here is a typical .kermrc for use on
On the other end of the line, for example, the host at your local
computer  center  to  which you want to transfer files, a typical
profile might be:
Kermit has many other options and features.  For a  pleasant  and
highly readable description of it, see the following book:
  Title: Kermit: A File Transfer Protocol
  Author: Frank da Cruz
  Publisher: Digital Press
  Date: 1987
  ISBN: 0-932376-88
For  information  about  recent kermit developments, versions for
other systems, and so forth, please contact:
  Christine M. Gianone
  Manager, Kermit Development and Distribution
  University Center for Computing Activities
  Columbia University
  612 West 115th Street
  New York, N.Y. 10025
Over 400 versions of kermit are available, so it is likely  there
is  one  for any computer your system might want to talk to.  Co-
lumbia University also publishes a newsletter about  kermit  that
can be requested from the above address.
All times are GMT -4. The time now is 01:43 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy