NFT Path Name Syntax

Because NFT sessions (unlike FTP sessions) do NOT begin with you logging on to a specific remote host, you normally use NFT's path name syntax to indicate each host (donor and receiver) involved in each NFT command. This section explains that syntax. (NFT does offer an OPEN command that somewhat mimics FTP, but its use is atypical.)

An NFT path name has three parts (some of which may be empty):

PARTS:   prefix       body          tail
EXAMPLE: atlas:~jfk   /dir1/dir2/   code3*.c

The latter two parts follow the usual UNIX rules for specifying directories, trees of directories, files, and sets of files. File-filter wildcards (such as * and ?) and the special dot directories (. and ..) are allowed in the standard ways.

The first part of the path name (the prefix) is unique to NFT (though similar to the SCP style). This is where you indicate the location (host) for the directories and files that you want NFT to transfer. There are 12 possible alternative locations, generated by a 3-by-4 matrix of prefix choices, as the left side of this chart reveals:

NFT-Specific Syntax

Usual UNIX Syntax

Prefix

Body

Tail

Any One of These

then Any One of These

Zero or More Directories (. .. ok)

Zero or More Files or Filters

:

/

host:

~

mt

~user

 

mt

[mt="empty," NO characters here]

 

where (1st column)

:

(colon) indicates the local host (the machine on which you are running the NFT client). For example :test3 indicates that file test3 is in the current working directory on the local host.

host:

indicates the specific (usually remote) host named. For example, atlas:test3 locates test3 in the current working directory on ATLAS, while yana:/usr/tmp/test3 locates test3 in the directory /usr/tmp on YANA. Only hosts that have NFT clients themselves are allowed here.

mt

(empty position, no flag) indicates NFT's default host, which is the LC archival storage system (storage.llnl.gov). WARNING: This is a significant difference from FTP (e.g., test3 locates file test3 in the current working directory on STORAGE, not on the local host where you are running NFT.

and where (2nd column)

/

(slash) indicates the machine's root directory. For example, :/test3 locates test3 in the root directory on the local machine (:).

~

(tilde) indicates the user's home directory (must be followed by / unless it is last in the path name). For example, :~/test3 locates test3 in the user's home directory on the local machine (:).

~user

indicates the home directory of the person with login name user (must be followed by / unless it is last in the path name). For example, :~jfk/test3 locates test3 in the home directory of user jfk on the local machine (:).

mt

(empty position, no flag) indicates the current working directory. For example, test3 locates file test3 in the (default) current working directory on the (default) host STORAGE.

This comparative example shows the 12 alternative locations for dd/ff that this NFT syntax can specify:

NFT Syntax

Location of dd/ff

:/dd/ff

local host, root

:~/dd/ff

local host, user's home

:~kk/dd/ff

local host, kk's home

:dd/ff

local host, current working dir.

hh:/dd/ff

host hh, root

hh:~/dd/ff

host hh, user's home

hh:~kk/dd/ff

host hh, kk's home

hh:dd/ff

host hh, current working dir.

/dd/ff

storage, root

~/dd/ff

storage, user's home

~kk/dd/ff

storage, kk's home

dd/ff

current working dir.

Some NFT commands (such as PUT and GET) are dedicated by default to file transfers with STORAGE (see keyword: storage-defaulted). Because of this special role, the storage-defaulted commands do not require, or even allow, use of the NFT prefix syntax to specify file locations. Storage-defaulted NFT commands take standard UNIX path names as arguments, but the host on which any file resides is specified solely by the command's definition (usually by the file's position in the argument list), never by using an NFT location prefix as shown here.