filename man page on DigitalUNIX

 Man page or keyword search:   man All Sections 1 - General Commands 2 - System Calls 3 - Subroutines, Functions 4 - Special Files 5 - File Formats 6 - Games and Screensavers 7 - Macros and Conventions 8 - Maintenence Commands 9 - Kernel Interface New Commands Server 4.4BSD AIX Alpinelinux Archlinux Aros BSDOS BSDi Bifrost CentOS Cygwin Darwin Debian DigitalUNIX DragonFly ElementaryOS Fedora FreeBSD Gentoo GhostBSD HP-UX Haiku Hurd IRIX Inferno JazzOS Kali Knoppix LinuxMint MacOSX Mageia Mandriva Manjaro Minix MirBSD NeXTSTEP NetBSD OPENSTEP OSF1 OpenBSD OpenDarwin OpenIndiana OpenMandriva OpenServer OpenSuSE OpenVMS Oracle PC-BSD Peanut Pidora Plan9 QNX Raspbian RedHat Scientific Slackware SmartOS Solaris SuSE SunOS Syllable Tru64 UNIXv7 Ubuntu Ultrix UnixWare Xenix YellowDog aLinux   12896 pages apropos Keyword Search (all sections) Output format html ascii pdf view pdf save postscript
[printable version]

filename(n)		     Tcl Built-In Commands		   filename(n)

______________________________________________________________________________

NAME
filename - File name conventions supported by Tcl commands
_________________________________________________________________

INTRODUCTION
All  Tcl	 commands  and	C procedures that take file names as arguments
expect the file names to be in one of three  forms,  depending  on  the
current	platform.   On	each  platform, Tcl supports file names in the
standard forms(s) for that platform.  In addition,  on  all  platforms,
Tcl supports a Unix-like syntax intended to provide a convenient way of
constructing simple file names.	However, scripts that are intended  to
be  portable  should  not  assume  a  particular	 form  for file names.
Instead, portable scripts must use the file split and  file  join  com‐
mands  to  manipulate  file  names  (see the file manual entry for more
details).

PATH TYPES
File names are grouped into three general types based on	 the  starting
point  for  the	path used to specify the file: absolute, relative, and
volume-relative.	 Absolute names are  completely	 qualified,  giving  a
path to the file relative to a particular volume and the root directory
on that volume.	Relative names are unqualified, giving a path  to  the
file  relative to the current working directory.	 Volume-relative names
are partially qualified, either giving the path relative	 to  the  root
directory  on  the current volume, or relative to the current directory
of the specified volume.	 The file pathtype  command  can  be  used  to
determine the type of a given path.

PATH SYNTAX
The  rules  for	native	names  depend on the value reported in the Tcl
array element tcl_platform(platform):

mac	 On Apple Macintosh systems, Tcl supports two  forms  of  path
names.	 The normal Mac style names use colons as path separa‐
tors.	Paths may be relative or absolute, and file names  may
contain  any  character  other	 than  colon.  A leading colon
causes the rest of the path to be interpreted relative to the
current directory.  If a path contains a colon that is not at
the beginning, then the path is interpreted  as  an  absolute
path.	 Sequences  of two or more colons anywhere in the path
are used to construct relative paths where :: refers  to  the
parent	 of the current directory, ::: refers to the parent of
the parent, and so forth.

In addition to Macintosh style names,	Tcl  also  supports  a
subset	 of  Unix-like	names.	 If a path contains no colons,
then it is interpreted like a Unix path.  Slash  is  used  as
the  path  separator.	 The file name . refers to the current
directory, and .. refers to the parent of the current	direc‐
tory.	However, some names like / or /.. have no mapping, and
are interpreted as Macintosh  names.	In  general,  commands
that  generate	 file names will return Macintosh style names,
but commands that accept file names will take both  Macintosh
and Unix-style names.

The  following	 examples  illustrate  various	forms  of path
names:

:		Relative path to the current folder.

MyFile		Relative path to a file named  MyFile  in  the
current folder.

MyDisk:MyFile	Absolute  path	to  a file named MyFile on the
device named MyDisk.

:MyDir:MyFile	Relative path to  a  file  name	 MyFile	 in  a
folder named MyDir in the current folder.

::MyFile	Relative  path	to  a file named MyFile in the
folder above the current folder.

:::MyFile	Relative path to a file named  MyFile  in  the
folder two levels above the current folder.

/MyDisk/MyFile Absolute  path	to  a file named MyFile on the
device named MyDisk.

../MyFile	Relative path to a file named  MyFile  in  the
folder above the current folder.

unix	 On  Unix  platforms, Tcl uses path names where the components
are separated by slashes.  Path  names	 may  be  relative  or
absolute, and file names may contain any character other than
slash.	 The file names . and .. are special and refer to  the
current  directory  and  the  parent of the current directory
respectively.	Multiple adjacent slash characters are	inter‐
preted	 as a single separator.	 The following examples illus‐
trate various forms of path names:

/		Absolute path to the root directory.

/etc/passwd	Absolute path to the file named passwd in  the
directory etc in the root directory.

.		Relative path to the current directory.

foo		Relative  path	to the file foo in the current
directory.

foo/bar	Relative path to the file bar in the directory
foo in the current directory.

../foo		Relative path to the file foo in the directory
above the current directory.

windows	 On Microsoft Windows platforms, Tcl supports both drive-rela‐
tive and UNC style names.  Both / and \ may be used as direc‐
tory separators in either type of name.  Drive-relative names
consist  of  an optional drive specifier followed by an abso‐
lute or relative path.	 UNC paths  follow  the	 general  form
\\servername\sharename\path\file.   In	 both  forms, the file
names . and .. are special and refer to the current directory
and  the  parent  of the current directory respectively.  The
following examples illustrate various forms of path names:

\\Host\share/file
Absolute UNC path to a file called file in the
root  directory	 of  the export point share on
the host Host.

c:foo		Volume-relative path to a file foo in the cur‐
rent directory on drive c.

c:/foo		Absolute path to a file foo in the root direc‐
tory of drive c.

foo\bar	Relative path to a file bar in the foo	direc‐
tory  in  the current directory on the current
volume.

\foo		Volume-relative path to a file foo in the root
directory of the current volume.

TILDE SUBSTITUTION
In  addition  to the file name rules described above, Tcl also supports
csh-style tilde substitution.  If a file name starts with a tilde, then
the  file  name will be interpreted as if the first element is replaced
with the location of the home directory for the	given  user.   If  the
tilde  is  followed immediately by a separator, then the $HOME environ‐ ment variable is substituted. Otherwise the characters between the tilde and the next separator are taken as a user name, which is used to retrieve the user's home directory for substitution. The Macintosh and Windows platforms do not support tilde substitution when a user name follows the tilde. On these platforms, attempts to use a tilde followed by a user name will generate an error. File names that have a tilde without a user name will be substituted using the$HOME environment variable, just like for Unix.

PORTABILITY ISSUES
Not all file systems are case sensitive, so scripts should  avoid  code
that  depends  on  the case of characters in a file name.  In addition,
the character sets allowed on different devices may differ, so  scripts
should  choose  file names that do not contain special characters like:
<>:"/\|.	 The safest approach is to use names  consisting  of  alphanu‐
meric  characters only.	Also Windows 3.1 only supports file names with
a root of no more than 8 characters and an extension of no more than  3
characters.

KEYWORDS
current directory, absolute file name, relative file name, volume-rela‐
tive file name, portability

Tcl				      7.5			   filename(n)

[top]

List of man pages available for DigitalUNIX

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.