ftp man page on Ubuntu

Man page or keyword search:  
man Server   6591 pages
apropos Keyword Search (all sections)
Output format
Ubuntu logo
[printable version]

ftp(3tcl)			  ftp client			     ftp(3tcl)

______________________________________________________________________________

NAME
       ftp - Client-side tcl implementation of the ftp protocol

SYNOPSIS
       package require Tcl  8.2

       package require ftp  ?2.4.9?

       ::ftp::Open server user passwd ?options?

       ::ftp::Close handle

       ::ftp::Cd handle directory

       ::ftp::Pwd handle

       ::ftp::Type handle ?ascii|binary|tenex?

       ::ftp::List handle ?pattern?

       ::ftp::NList handle ?directory?

       ::ftp::FileSize handle file

       ::ftp::ModTime handle file

       ::ftp::Delete handle file

       ::ftp::Rename handle from to

       ::ftp::Put handle (local | -data data | -channel chan) ?remote?

       ::ftp::Append handle (local | -data data | -channel chan) ?remote?

       ::ftp::Get handle remote ?(local | -variable varname | -channel chan)?

       ::ftp::Reget handle remote ?local? ?from? ?to?

       ::ftp::Newer handle remote ?local?

       ::ftp::MkDir handle directory

       ::ftp::RmDir handle directory

       ::ftp::Quote handle arg1 arg2 ...

       ::ftp::DisplayMsg handle msg ?state?

_________________________________________________________________

DESCRIPTION
       The  ftp package provides the client side of the ftp protocol as speci‐
       fied in RFC 959 (http://www.rfc-editor.org/rfc/rfc959.txt).  The	 pack‐
       age implements both active (default) and passive ftp sessions.

       A  new ftp session is started with the ::ftp::Open command. To shutdown
       an existing ftp	session	 use  ::ftp::Close.  All  other	 commands  are
       restricted  to  usage  in  an  an  open ftp session. They will generate
       errors if they are used out of context.	The ftp package includes  file
       and  directory  manipulating  commands for remote sites. To perform the
       same operations on the local site use commands  built  into  the	 core,
       like cd or file.

       The  output  of	the  package  is  controlled  by  two state variables,
       ::ftp::VERBOSE and ::ftp::DEBUG. Setting ::ftp::VERBOSE to  "1"	forces
       the  package  to	 show  all responses from a remote server. The default
       value is "0". Setting ::ftp::DEBUG to "1" enables debugging and	forces
       the  package to show all return codes, states, state changes and "real"
       ftp commands. The default value is "0".

       The command ::ftp::DisplayMsg is used to show  the  different  messages
       from  the ftp session. The setting of ::ftp::VERBOSE determines if this
       command is called or not. The current  implementation  of  the  command
       uses  the  log  package	of tcllib to write the messages to their final
       destination. This means that the behaviour of ::ftp::DisplayMsg can  be
       customized  without  changing  its  implementation.  For	 more  radical
       changes overwriting its implementation by the application is of	course
       still  possible. Note that the default implementation honors the option
       -output to ::ftp::Open for a session specific log command.

       Caution: The default implementation logs error messages like all	 other
       messages. If this behaviour is changed to throwing an error instead all
       commands in the API will change their behaviour too.  In	 such  a  case
       they  will  not	return	a failure code as described below but pass the
       thrown error to their caller.

API
       ::ftp::Open server user passwd ?options?
	      This command is used to start a FTP session  by  establishing  a
	      control  connection to the FTP server. The defaults are used for
	      any option not specified by the caller.

	      The command takes a host name server, a user  name  user	and  a
	      password password as its parameters and returns a session handle
	      that is an integer number greater than or equal to "0",  if  the
	      connection  is  successfully  established.  Otherwise it returns
	      "-1".  The server parameter must be the name or internet address
	      (in  dotted  decimal  notation) of the ftp server to connect to.
	      The user and passwd parameters must contain a  valid  user  name
	      and password to complete the login process.

	      The  options overwrite some default values or set special abili‐
	      ties:

	      -blocksize size
		     The blocksize is used during data transfer. At most  size
		     bytes  are transfered at once. The default value for this
		     option is 4096.  The package will evaluate the  -progress
		     callback  for  the	 session  after	 the  transfer of each
		     block.

	      -timeout seconds
		     If seconds is non-zero, then ::ftp::Open sets up a	 time‐
		     out  which	 will occur after the specified number of sec‐
		     onds. The default value is 600.

	      -port number
		     The port number specifies an alternative remote  port  on
		     the ftp server on which the ftp service resides. Most ftp
		     services listen for connection requests  on  the  default
		     port  21.	Sometimes,  usually for security reasons, port
		     numbers other than 21 are used for ftp connections.

	      -mode mode
		     The transfer mode option determines if  a	file  transfer
		     occurs  in	 active	 or  passive mode. In passive mode the
		     client will ask the ftp server to listen on a  data  port
		     and  wait	for the connection rather than to initiate the
		     process by itself when a data transfer request comes  in.
		     Passive  mode  is	normally  a requirement when accessing
		     sites via a firewall. The default mode is active.

	      -progress callback
		     This callback is evaluated whenever a block of  data  was
		     transfered.  See the option -blocksize for how to specify
		     the size of the transfered blocks.

		     When evaluating the callback one argument is appended  to
		     the  callback  script,  the current accumulated number of
		     bytes transferred so far.

	      -command callback
		     Specifying this option places the connection  into	 asyn‐
		     chronous  mode.  The callback is evaluated after the com‐
		     pletion of any operation. When an operation is running no
		     further  operations  must be started until a callback has
		     been received for the currently executing operation.

		     When  evaluating  the  callback  several  arguments   are
		     appended  to  the	callback script, namely the keyword of
		     the operation that has completed and any additional argu‐
		     ments  specific  to  the operation.  If an error occurred
		     during the execution of the  operation  the  callback  is
		     given the keyword error.

	      -output callback
		     This  option  has	no  default.  If it is set the default
		     implementation of ::ftp::DisplayMsg will use its value as
		     command prefix to log all internal messages. The callback
		     will have three arguments appended to it  before  evalua‐
		     tion,  the id of the session, the message itself, and the
		     connection state, in this order.

       ::ftp::Close handle
	      This command terminates the specified ftp session.  If  no  file
	      transfer	is in progress, the server will close the control con‐
	      nection immediately. If a file transfer is in progress  however,
	      the control connection will remain open until the transfers com‐
	      pletes. When that happens	 the  server  will  write  the	result
	      response	for the transfer to it and close the connection after‐
	      ward.

       ::ftp::Cd handle directory
	      This command changes the current working directory  on  the  ftp
	      server  to  a specified target directory.	 The command returns 1
	      if the current working directory was successfully changed to the
	      specified	 directory or 0 if it fails.  The target directory can
	      be

	      ·	     a subdirectory of the current directory,

	      ·	     Two dots, ..  (as an indicator for the  parent  directory
		     of the current directory)

	      ·	     or a fully qualified path to a new working directory.

       ::ftp::Pwd handle
	      This  command  returns  the complete path of the current working
	      directory on the ftp server, or an empty string in  case	of  an
	      error.

       ::ftp::Type handle ?ascii|binary|tenex?
	      This  command  sets  the ftp file transfer type to either ascii,
	      binary, or tenex. The command always returns the	currently  set
	      type. If called without type no change is made.

	      Currently	 only  ascii  and binary types are supported. There is
	      some early (alpha) support for Tenex mode.  The  type  ascii  is
	      normally	used  to convert text files into a format suitable for
	      text editors on the platform of the  destination	machine.  This
	      mainly affects end-of-line markers. The type binary on the other
	      hand allows the undisturbed transfer of non-text files, such  as
	      compressed files, images and executables.

       ::ftp::List handle ?pattern?
	      This  command  returns a human-readable list of files.  Wildcard
	      expressions such as "*.tcl" are allowed.	If pattern refers to a
	      specific	directory,  then  the  contents	 of that directory are
	      returned.	 If the pattern is not a  fully-qualified  path	 name,
	      the  command lists entries relative to the current remote direc‐
	      tory.  If no pattern is specified, the contents of  the  current
	      remote directory is returned.

	      The  listing  includes any system-dependent information that the
	      server chooses to include. For example most UNIX systems produce
	      output from the command ls -l. The command returns the retrieved
	      information as a tcl list with one item per entry.  Empty	 lines
	      and  UNIX's  "total"  lines  are ignored and not included in the
	      result as reported by this command.

	      If the command fails an empty list is returned.

       ::ftp::NList handle ?directory?
	      This command has the same behavior as the	 ::ftp::List  command,
	      except that it only retrieves an abbreviated listing. This means
	      only file names are returned in a sorted list.

       ::ftp::FileSize handle file
	      This command returns the size of the specified file on  the  ftp
	      server. If the command fails an empty string is returned.

	      ATTENTION!  It  will not work properly when in ascii mode and is
	      not supported by all ftp server implementations.

       ::ftp::ModTime handle file
	      This command retrieves the time of the last modification of  the
	      file  on	the  ftp server as a system dependent integer value in
	      seconds or an empty string if an error occurred. Use the	built-
	      in  command clock to convert the retrieves value into other for‐
	      mats.

       ::ftp::Delete handle file
	      This command deletes the specified file on the ftp  server.  The
	      command returns 1 if the specified file was successfully deleted
	      or 0 if it failed.

       ::ftp::Rename handle from to
	      This command renames the file from in the current	 directory  of
	      the  ftp server to the specified new file name to. This new file
	      name must not be the same as any existing subdirectory  or  file
	      name.   The command returns 1 if the specified file was success‐
	      fully renamed or 0 if it failed.

       ::ftp::Put handle (local | -data data | -channel chan) ?remote?
	      This command transfers a local  file  local  to  a  remote  file
	      remote  on  the ftp server. If the file parameters passed to the
	      command do not fully qualified path names the command  will  use
	      the  current  directory  on local and remote host. If the remote
	      file name is unspecified, the server will use the	 name  of  the
	      local file as the name of the remote file. The command returns 1
	      to indicate a successful transfer and 0 in the case of  a	 fail‐
	      ure.

	      If  -data	 data is specified instead of a local file, the system
	      will not transfer a file, but the data passed into it.  In  this
	      case the name of the remote file has to be specified.

	      If  -channel chan is specified instead of a local file, the sys‐
	      tem will not transfer a file, but read the contents of the chan‐
	      nel  chan	 and  write  this to the remote file. In this case the
	      name of the remote file has to be specified. After the  transfer
	      chan will be closed.

       ::ftp::Append handle (local | -data data | -channel chan) ?remote?
	      This  command  behaves  like ::ftp::Puts, but appends the trans‐
	      fered information to the remote file. If the file did not	 exist
	      on the server it will be created.

       ::ftp::Get handle remote ?(local | -variable varname | -channel chan)?
	      This  command  retrieves	a remote file remote on the ftp server
	      and stores its contents into the local file local. If  the  file
	      parameters  passed  to  the command are not fully qualified path
	      names the command will use the current directory	on  local  and
	      remote  host.  If the local file name is unspecified, the server
	      will use the name of the remote file as the name	of  the	 local
	      file.  The  command  returns 1 to indicate a successful transfer
	      and 0 in the case of a failure. The command will throw an	 error
	      if  the  directory  the  file  local is to be placed in does not
	      exist.

	      If -variable varname is specified, the  system  will  store  the
	      retrieved data into the variable varname instead of a file.

	      If  -channel  chan  is  specified,  the  system  will  write the
	      retrieved data into the channel chan instead of a file. The sys‐
	      tem  will not close chan after the transfer, this is the respon‐
	      sibility of the caller to ::ftp::Get.

       ::ftp::Reget handle remote ?local? ?from? ?to?
	      This command behaves like ::ftp::Get, except that if local  file
	      local  exists  and is smaller than remote file remote, the local
	      file is presumed to be  a	 partially  transferred	 copy  of  the
	      remote  file  and	 the  transfer	is continued from the apparent
	      point of failure.	 The command will throw an error if the direc‐
	      tory the file local is to be placed in does not exist. This com‐
	      mand is useful when transferring very large files over  networks
	      that tend to drop connections.

	      Specifying  the  additional  byte offsets from and to will cause
	      the command to change its behaviour and to download exactly  the
	      specified	 slice	of the remote file. This mode is possible only
	      if a local destination is explicitly provided.  Omission	of  to
	      leads to downloading till the end of the file.

       ::ftp::Newer handle remote ?local?
	      This  command  behaves like ::ftp::Get, except that it retrieves
	      the remote file only if the modification time of the remote file
	      is  more	recent	than the file on the local system. If the file
	      does not exist on the local system, the remote file  is  consid‐
	      ered newer. The command will throw an error if the directory the
	      file local is to be placed in does not exist.

       ::ftp::MkDir handle directory
	      This command creates the specified directory on the ftp  server.
	      If the specified path is relative the new directory will be cre‐
	      ated as a subdirectory of the current  working  directory.  Else
	      the  created  directory  will  have the specified path name. The
	      command returns 1 to  indicate  a	 successful  creation  of  the
	      directory and 0 in the case of a failure.

       ::ftp::RmDir handle directory
	      This  command removes the specified directory on the ftp server.
	      The remote directory has to be empty or the command  will	 fail.
	      The  command  returns  1 to indicate a successful removal of the
	      directory and 0 in the case of a failure.

       ::ftp::Quote handle arg1 arg2 ...
	      This command is used to send an arbitrary	 ftp  command  to  the
	      server.  It  cannot be used to obtain a directory listing or for
	      transferring files. It is included to allow  an  application  to
	      execute  commands	 on  the  ftp server which are not provided by
	      this package.  The arguments are sent verbatim, i.e. as is, with
	      no changes.

	      In  contrast  to the other commands in this package this command
	      will not parse the response it  got  from	 the  ftp  server  but
	      return it verbatim to the caller.

       ::ftp::DisplayMsg handle msg ?state?
	      This command is used by the package itself to show the different
	      messages from the ftp sessions. The package itself declares this
	      command	very  simple,  writing	the  messages  to  stdout  (if
	      ::ftp::VERBOSE was set, see below) and throwing tcl  errors  for
	      error  messages.	It is the responsibility of the application to
	      overwrite it as needed. A state variable	for  different	states
	      assigned	to  different colors is recommended by the author. The
	      package log is useful for this.

       ::ftp::VERBOSE
	      A state variable controlling the output of the package.  Setting
	      ::ftp::VERBOSE  to  "1" forces the package to show all responses
	      from a remote server. The default value is "0".

       ::ftp::DEBUG
	      A	 state	variable  controlling  the  output  of	ftp.   Setting
	      ::ftp::DEBUG  to "1" enables debugging and forces the package to
	      show all return codes, states, state changes and "real" ftp com‐
	      mands. The default value is "0".

BUGS
       The correct execution of many commands depends upon the proper behavior
       by the remote server, network and router configuration.

       An update command placed in the	procedure  ::ftp::DisplayMsg  may  run
       into  persistent errors or infinite loops. The solution to this problem
       is to use update idletasks instead of update.

BUGS, IDEAS, FEEDBACK
       This document, and the package it describes, will  undoubtedly  contain
       bugs and other problems.	 Please report such in the category ftp of the
       Tcllib  SF  Trackers  [http://sourceforge.net/tracker/?group_id=12883].
       Please  also  report any ideas for enhancements you may have for either
       package and/or documentation.

SEE ALSO
       ftpd, mime, pop3, smtp

KEYWORDS
       ftp, internet, net, rfc 959

CATEGORY
       Networking

ftp				     2.4.9			     ftp(3tcl)
[top]

List of man pages available for Ubuntu

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.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net