Annotation of 43BSDReno/usr.bin/ftp/ftp.1, revision 1.1

1.1     ! root        1: .\" Copyright (c) 1985, 1989, 1990 The Regents of the University of California.
        !             2: .\" All rights reserved.
        !             3: .\"
        !             4: .\" Redistribution and use in source and binary forms are permitted provided
        !             5: .\" that: (1) source distributions retain this entire copyright notice and
        !             6: .\" comment, and (2) distributions including binaries display the following
        !             7: .\" acknowledgement:  ``This product includes software developed by the
        !             8: .\" University of California, Berkeley and its contributors'' in the
        !             9: .\" documentation or other materials provided with the distribution and in
        !            10: .\" all advertising materials mentioning features or use of this software.
        !            11: .\" Neither the name of the University nor the names of its contributors may
        !            12: .\" be used to endorse or promote products derived from this software without
        !            13: .\" specific prior written permission.
        !            14: .\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
        !            15: .\" WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
        !            16: .\" MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
        !            17: .\"
        !            18: .\"     @(#)ftp.1      6.15 (Berkeley) 7/24/90
        !            19: .\"
        !            20: .Dd July 24, 1990
        !            21: .Dt FTP 1
        !            22: .Os BSD 4.2
        !            23: .Sh NAME
        !            24: .Nm ftp
        !            25: .Nd ARPANET file transfer program
        !            26: .Sh SYNOPSIS
        !            27: .Nm ftp
        !            28: .Op Fl v
        !            29: .Op Fl d
        !            30: .Op Fl i
        !            31: .Op Fl n
        !            32: .Op Fl g
        !            33: .Op Ar host
        !            34: .Sh DESCRIPTION
        !            35: .Nm Ftp
        !            36: is the user interface to the ARPANET standard File Transfer Protocol.
        !            37: The program allows a user to transfer files to and from a
        !            38: remote network site.
        !            39: .Pp
        !            40: Options may be specified at the command line, or to the
        !            41: command interpreter.
        !            42: .Tw Ds
        !            43: .Tp Fl v
        !            44: Verbose option forces
        !            45: .Nm ftp
        !            46: to show all responses from the remote server, as well
        !            47: as report on data transfer statistics.
        !            48: .Tp Fl n
        !            49: Restrains
        !            50: .Nm ftp
        !            51: from attempting \*(Lqauto-login\*(Rq upon initial connection.
        !            52: If auto-login is enabled,
        !            53: .Nm ftp
        !            54: will check the
        !            55: .Pa .netrc
        !            56: (see below) file in the user's home directory for an entry describing
        !            57: an account on the remote machine.  If no entry exists,
        !            58: .Nm ftp
        !            59: will prompt for the remote machine login name (default is the user
        !            60: identity on the local machine), and, if necessary, prompt for a password
        !            61: and an account with which to login.
        !            62: .Tp Fl i
        !            63: Turns off interactive prompting during
        !            64: multiple file transfers.
        !            65: .Tp Fl d
        !            66: Enables debugging.
        !            67: .Tp Fl g
        !            68: Disables file name globbing.
        !            69: .Tp
        !            70: .Pp
        !            71: The client host with which
        !            72: .Nm ftp
        !            73: is to communicate may be specified on the command line.
        !            74: If this is done,
        !            75: .Nm ftp
        !            76: will immediately attempt to establish a connection to an FTP
        !            77: server on that host; otherwise,
        !            78: .Nm ftp
        !            79: will enter its command interpreter and await instructions
        !            80: from the user.  When
        !            81: .Nm ftp
        !            82: is awaiting commands from the user the prompt
        !            83: .Ql ftp>
        !            84: is provided to the user.  The following commands are recognized
        !            85: by
        !            86: .Nm ftp  :
        !            87: .Tw Fl
        !            88: .Tp Cx Ic \&!
        !            89: .Ws
        !            90: .Op Ar command Op Ar args
        !            91: .Cx
        !            92: Invoke an interactive shell on the local machine.
        !            93: If there are arguments, the first is taken to be a command to execute
        !            94: directly, with the rest of the arguments as its arguments.
        !            95: .Tp Cx Ic \&$
        !            96: .Ws
        !            97: .Ar macro-name
        !            98: .Op Ar args
        !            99: .Cx
        !           100: Execute the macro
        !           101: .Ar macro-name
        !           102: that was defined with the
        !           103: .Ic macdef
        !           104: command.
        !           105: Arguments are passed to the macro unglobbed.
        !           106: .Tp Cx Ic account
        !           107: .Ws
        !           108: .Op Ar passwd
        !           109: .Cx
        !           110: Supply a supplemental password required by a remote system for access
        !           111: to resources once a login has been successfully completed.
        !           112: If no argument is included, the user will be prompted for an account
        !           113: password in a non-echoing input mode.
        !           114: .Tp Cx Ic append
        !           115: .Ws
        !           116: .Ar local-file
        !           117: .Ws
        !           118: .Op Ar remote-file
        !           119: .Cx
        !           120: Append a local file to a file on the remote machine.  If
        !           121: .Ar remote-file
        !           122: is left unspecified, the local file name is used in naming the
        !           123: remote file after being altered by any
        !           124: .Ic ntrans
        !           125: or
        !           126: .Ic nmap
        !           127: setting.
        !           128: File transfer uses the current settings for
        !           129: .Ic type  ,
        !           130: .Ic format ,
        !           131: .Ic mode  ,
        !           132: and
        !           133: .Ic structure .
        !           134: .Tp Ic ascii
        !           135: Set the file transfer
        !           136: .Ic type
        !           137: to network ASCII.  This is the default type.
        !           138: .Tp Ic bell
        !           139: Arrange that a bell be sounded after each file transfer
        !           140: command is completed.
        !           141: .Tp Ic binary
        !           142: Set the file transfer
        !           143: .Ic type
        !           144: to support binary image transfer.
        !           145: .Tp Ic bye
        !           146: Terminate the FTP session with the remote server
        !           147: and exit
        !           148: .Nm ftp  .
        !           149: An end of file will also terminate the session and exit.
        !           150: .Tp Ic case
        !           151: Toggle remote computer file name case mapping during
        !           152: .Ic mget
        !           153: commands.
        !           154: When
        !           155: .Ic case
        !           156: is on (default is off), remote computer file names with all letters in
        !           157: upper case are written in the local directory with the letters mapped
        !           158: to lower case.
        !           159: .Tp Cx Ic cd
        !           160: .Ws
        !           161: .Ar remote-directory
        !           162: .Cx
        !           163: Change the working directory on the remote machine
        !           164: to
        !           165: .Ar remote-directory  .
        !           166: .Tp Ic cdup
        !           167: Change the remote machine working directory to the parent of the
        !           168: current remote machine working directory.
        !           169: .Tp Cx Ic chmod
        !           170: .Ws
        !           171: .Ar mode file-name
        !           172: .Cx
        !           173: Change the permission modes of the file
        !           174: .Ar file-name
        !           175: on the remote
        !           176: sytem to
        !           177: .Ar mode  .
        !           178: .Tp Ic close
        !           179: Terminate the FTP session with the remote server, and
        !           180: return to the command interpreter.
        !           181: Any defined macros are erased.
        !           182: .Tp Ic cr
        !           183: Toggle carriage return stripping during
        !           184: ascii type file retrieval.
        !           185: Records are denoted by a carriage return/linefeed sequence
        !           186: during ascii type file transfer.
        !           187: When
        !           188: .Ic cr
        !           189: is on (the default), carriage returns are stripped from this
        !           190: sequence to conform with the UNIX single linefeed record
        !           191: delimiter.
        !           192: Records on non-UNIX remote systems may contain single linefeeds;
        !           193: when an ascii type transfer is made, these linefeeds may be
        !           194: distinguished from a record delimiter only when
        !           195: .Ic cr
        !           196: is off.
        !           197: .Tp Cx Ic delete
        !           198: .Ws
        !           199: .Ar remote-file
        !           200: .Cx
        !           201: Delete the file
        !           202: .Ar remote-file
        !           203: on the remote machine.
        !           204: .Tp Cx Ic debug
        !           205: .Ws
        !           206: .Op Ar debug-value
        !           207: .Cx
        !           208: Toggle debugging mode.  If an optional
        !           209: .Ar debug-value
        !           210: is specified it is used to set the debugging level.
        !           211: When debugging is on,
        !           212: .Nm ftp
        !           213: prints each command sent to the remote machine, preceded
        !           214: by the string
        !           215: .Ql \-\->
        !           216: .Tp Cx Ic dir
        !           217: .Ws
        !           218: .Op Ar remote-directory
        !           219: .Ws
        !           220: .Op Ar local-file
        !           221: .Cx
        !           222: Print a listing of the directory contents in the
        !           223: directory,
        !           224: .Ar remote-directory  ,
        !           225: and, optionally, placing the output in
        !           226: .Ar local-file  .
        !           227: If interactive prompting is on,
        !           228: .Nm ftp
        !           229: will prompt the user to verify that the last argument is indeed the
        !           230: target local file for receiving
        !           231: .Ic dir
        !           232: output.
        !           233: If no directory is specified, the current working
        !           234: directory on the remote machine is used.  If no local
        !           235: file is specified, or
        !           236: .Ar local-file
        !           237: is
        !           238: .Fl  ,
        !           239: output comes to the terminal.
        !           240: .Tp Ic disconnect
        !           241: A synonym for
        !           242: .Ar close  .
        !           243: .Tp Cx Ic form
        !           244: .Ws
        !           245: .Ar format
        !           246: .Cx
        !           247: Set the file transfer
        !           248: .Ic form
        !           249: to
        !           250: .Ar format  .
        !           251: The default format is \*(Lqfile\*(Rq.
        !           252: .Tp Cx Ic get
        !           253: .Ws
        !           254: .Ar remote-file
        !           255: .Ws
        !           256: .Op Ar local-file
        !           257: .Cx
        !           258: Retrieve the
        !           259: .Ar remote-file
        !           260: and store it on the local machine.  If the local
        !           261: file name is not specified, it is given the same
        !           262: name it has on the remote machine, subject to
        !           263: alteration by the current
        !           264: .Ic case  ,
        !           265: .Ic ntrans ,
        !           266: and
        !           267: .Ic nmap
        !           268: settings.
        !           269: The current settings for
        !           270: .Ic type  ,
        !           271: .Ic form ,
        !           272: .Ic mode  ,
        !           273: and
        !           274: .Ic structure
        !           275: are used while transferring the file.
        !           276: .Tp Ic glob
        !           277: Toggle filename expansion for
        !           278: .Ic mdelete  ,
        !           279: .Ic mget
        !           280: and
        !           281: .Ic mput  .
        !           282: If globbing is turned off with
        !           283: .Ic glob  ,
        !           284: the file name arguments
        !           285: are taken literally and not expanded.
        !           286: Globbing for
        !           287: .Ic mput
        !           288: is done as in
        !           289: .Xr csh 1 .
        !           290: For
        !           291: .Ic mdelete
        !           292: and
        !           293: .Ic mget  ,
        !           294: each remote file name is expanded
        !           295: separately on the remote machine and the lists are not merged.
        !           296: Expansion of a directory name is likely to be
        !           297: different from expansion of the name of an ordinary file:
        !           298: the exact result depends on the foreign operating system and ftp server,
        !           299: and can be previewed by doing
        !           300: .Ql mls remote-files \-
        !           301: Note:
        !           302: .Ic mget
        !           303: and
        !           304: .Ic mput
        !           305: are not meant to transfer
        !           306: entire directory subtrees of files.  That can be done by
        !           307: transferring a
        !           308: .Xr tar 1
        !           309: archive of the subtree (in binary mode).
        !           310: .Tp Ic hash
        !           311: Toggle hash-sign (``#'') printing for each data block
        !           312: transferred.  The size of a data block is 1024 bytes.
        !           313: .Tp Cx Ic help
        !           314: .Ws
        !           315: .Op Ar command
        !           316: .Cx
        !           317: Print an informative message about the meaning of
        !           318: .Ar command  .
        !           319: If no argument is given,
        !           320: .Nm ftp
        !           321: prints a list of the known commands.
        !           322: .Tp Cx Ic idle
        !           323: .Ws
        !           324: .Op Ar seconds
        !           325: .Cx
        !           326: Set the inactivity timer on the remote server to
        !           327: .Ar seconds
        !           328: seconds.
        !           329: If
        !           330: .Ar seconds
        !           331: is ommitted, the current inactivity timer is printed.
        !           332: .Tp Cx Ic lcd
        !           333: .Ws
        !           334: .Op Ar directory
        !           335: .Cx
        !           336: Change the working directory on the local machine.  If
        !           337: no
        !           338: .Ar directory
        !           339: is specified, the user's home directory is used.
        !           340: .Tp Cx Ic ls
        !           341: .Ws
        !           342: .Op Ar remote-directory
        !           343: .Ws
        !           344: .Op Ar local-file
        !           345: .Cx
        !           346: Print a listing of the contents of a
        !           347: directory on the remote machine.
        !           348: The listing includes any system-dependent information that the server
        !           349: chooses to include; for example, most UNIX systems will produce
        !           350: output from the command
        !           351: .Ql ls \-l .
        !           352: (See also
        !           353: .Ic nlist  .
        !           354: )
        !           355: If
        !           356: .Ar remote-directory
        !           357: is left unspecified, the current working directory is used.
        !           358: If interactive prompting is on,
        !           359: .Nm ftp
        !           360: will prompt the user to verify that the last argument is indeed the
        !           361: target local file for receiving
        !           362: .Ic ls
        !           363: output.
        !           364: If no local file is specified, or if
        !           365: .Ar local-file
        !           366: is
        !           367: .Sq Fl ,
        !           368: the output is sent to the terminal.
        !           369: .Tp Cx Ic macdef
        !           370: .Ws
        !           371: .Ar macro-name
        !           372: .Cx
        !           373: Define a macro.
        !           374: Subsequent lines are stored as the macro
        !           375: .Ar macro-name  ;
        !           376: a null line (consecutive newline characters
        !           377: in a file or
        !           378: carriage returns from the terminal) terminates macro input mode.
        !           379: There is a limit of 16 macros and 4096 total characters in all
        !           380: defined macros.
        !           381: Macros remain defined until a
        !           382: .Ic close
        !           383: command is executed.
        !           384: The macro processor interprets `$' and `\e' as special characters.
        !           385: A `$' followed by a number (or numbers) is replaced by the
        !           386: corresponding argument on the macro invocation command line.
        !           387: A `$' followed by an `i' signals that macro processor that the
        !           388: executing macro is to be looped. On the first pass `$i' is
        !           389: replaced by the first argument on the macro invocation command line,
        !           390: on the second pass it is replaced by the second argument, and so on.
        !           391: A `\e' followed by any character is replaced by that character.
        !           392: Use the `\e' to prevent special treatment of the `$'.
        !           393: .Tp Cx Ic mdelete
        !           394: .Ws
        !           395: .Op Ar remote-files
        !           396: .Cx
        !           397: Delete the
        !           398: .Ar remote-files
        !           399: on the remote machine.
        !           400: .Tp Cx Ic mdir
        !           401: .Ws
        !           402: .Ar remote-files
        !           403: .Ws
        !           404: .Ar local-file
        !           405: .Cx
        !           406: Like
        !           407: .Ic dir  ,
        !           408: except multiple remote files may be specified.
        !           409: If interactive prompting is on,
        !           410: .Nm ftp
        !           411: will prompt the user to verify that the last argument is indeed the
        !           412: target local file for receiving
        !           413: .Ic mdir
        !           414: output.
        !           415: .Tp Cx Ic mget
        !           416: .Ws
        !           417: .Ar remote-files
        !           418: .Cx
        !           419: Expand the
        !           420: .Ar remote-files
        !           421: on the remote machine
        !           422: and do a
        !           423: .Ic get
        !           424: for each file name thus produced.
        !           425: See
        !           426: .Ic glob
        !           427: for details on the filename expansion.
        !           428: Resulting file names will then be processed according to
        !           429: .Ic case  ,
        !           430: .Ic ntrans ,
        !           431: and
        !           432: .Ic nmap
        !           433: settings.
        !           434: Files are transferred into the local working directory,
        !           435: which can be changed with
        !           436: .Cx `
        !           437: .Cx Li lcd directory
        !           438: .Cx \';
        !           439: new local directories can be created with
        !           440: .Cx Li \&! mkdir directory
        !           441: .Cx \'.
        !           442: .Tp Cx Ic mkdir
        !           443: .Ws
        !           444: .Ar directory-name
        !           445: .Cx
        !           446: Make a directory on the remote machine.
        !           447: .Tp Cx Ic mls
        !           448: .Ws
        !           449: .Ar remote-files
        !           450: .Ws
        !           451: .Ar local-file
        !           452: .Cx
        !           453: Like
        !           454: .Ic nlist  ,
        !           455: except multiple remote files may be specified,
        !           456: and the
        !           457: .Ar local-file
        !           458: must be specified.
        !           459: If interactive prompting is on,
        !           460: .Nm ftp
        !           461: will prompt the user to verify that the last argument is indeed the
        !           462: target local file for receiving
        !           463: .Ic mls
        !           464: output.
        !           465: .Tp Cx Ic mode
        !           466: .Ws
        !           467: .Op Ar mode-name
        !           468: .Cx
        !           469: Set the file transfer
        !           470: .Ic mode
        !           471: to
        !           472: .Ar mode-name  .
        !           473: The default mode is \*(Lqstream\*(Rq mode.
        !           474: .Tp Cx Ic modtime
        !           475: .Ws
        !           476: .Ar file-name
        !           477: .Cx
        !           478: Show the last modification time of the file on the remote machine.
        !           479: .Tp Cx Ic mput
        !           480: .Ws
        !           481: .Ar local-files
        !           482: .Cx
        !           483: Expand wild cards in the list of local files given as arguments
        !           484: and do a
        !           485: .Ic put
        !           486: for each file in the resulting list.
        !           487: See
        !           488: .Ic glob
        !           489: for details of filename expansion.
        !           490: Resulting file names will then be processed according to
        !           491: .Ic ntrans
        !           492: and
        !           493: .Ic nmap
        !           494: settings.
        !           495: .Tp Cx Ic newer
        !           496: .Ws
        !           497: .Ar file-name
        !           498: .Cx
        !           499: Get the file only if the modification time of the remote file is more
        !           500: recent that the file on the current system. If the file does not
        !           501: exist on the current system, the remote file is considered
        !           502: .Ic newer  .
        !           503: Otherwise, this command is identical to
        !           504: .Ar get  .
        !           505: .Tp Cx Ic nlist
        !           506: .Ws
        !           507: .Op Ar remote-directory
        !           508: .Ws
        !           509: .Op Ar local-file
        !           510: .Cx
        !           511: Print a  list of the files in a
        !           512: directory on the remote machine.  If
        !           513: .Ar remote-directory
        !           514: is left unspecified, the current working directory is used.
        !           515: If interactive prompting is on,
        !           516: .Nm ftp
        !           517: will prompt the user to verify that the last argument is indeed the
        !           518: target local file for receiving
        !           519: .Ic nlist
        !           520: output.
        !           521: If no local file is specified, or if
        !           522: .Ar local-file
        !           523: is
        !           524: .Fl  ,
        !           525: the output is sent to the terminal.
        !           526: .Tp Cx Ic nmap
        !           527: .Ws
        !           528: .Op Ar inpattern outpattern
        !           529: .Cx
        !           530: Set or unset the filename mapping mechanism.
        !           531: If no arguments are specified, the filename mapping mechanism is unset.
        !           532: If arguments are specified, remote filenames are mapped during
        !           533: .Ic mput
        !           534: commands and
        !           535: .Ic put
        !           536: commands issued without a specified remote target filename.
        !           537: If arguments are specified, local filenames are mapped during
        !           538: .Ic mget
        !           539: commands and
        !           540: .Ic get
        !           541: commands issued without a specified local target filename.
        !           542: This command is useful when connecting to a non-UNIX remote computer
        !           543: with different file naming conventions or practices.
        !           544: The mapping follows the pattern set by
        !           545: .Ar inpattern
        !           546: and
        !           547: .Ar outpattern  .
        !           548: .Op Ar Inpattern
        !           549: is a template for incoming filenames (which may have already been
        !           550: processed according to the
        !           551: .Ic ntrans
        !           552: and
        !           553: .Ic case
        !           554: settings).
        !           555: Variable templating is accomplished by including the sequences `$1', `$2', ..., `$9' in
        !           556: .Ar inpattern  .
        !           557: Use `\\' to prevent this special treatment of the `$' character.
        !           558: All other characters are treated literally, and are used to determine the
        !           559: .Ic nmap
        !           560: .Op Ar inpattern
        !           561: variable values.
        !           562: For example, given
        !           563: .Ar inpattern
        !           564: $1.$2 and the remote file name "mydata.data", $1 would have the value
        !           565: "mydata", and $2 would have the value "data".
        !           566: The
        !           567: .Ar outpattern
        !           568: determines the resulting mapped filename.
        !           569: The sequences `$1', `$2', ...., `$9' are replaced by any value resulting
        !           570: from the
        !           571: .Ar inpattern
        !           572: template.
        !           573: The sequence `$0' is replace by the original filename.
        !           574: Additionally, the sequence
        !           575: .Cx `
        !           576: .Op Ar seq1 , Ar seq2
        !           577: .Cx \'
        !           578: .Cx
        !           579: is replaced by
        !           580: .Op Ar seq1
        !           581: if
        !           582: .Ar seq1
        !           583: is not a null string; otherwise it is replaced by
        !           584: .Ar seq2 .
        !           585: For example, the command
        !           586: .Pp
        !           587: .Df I
        !           588: nmap $1.$2.$3
        !           589: .Cx Op $1,$2
        !           590: .Cx .
        !           591: .Op $2,file
        !           592: .Cx
        !           593: .De
        !           594: .Pp
        !           595: would yield
        !           596: the output filename "myfile.data" for input filenames "myfile.data" and
        !           597: "myfile.data.old", "myfile.file" for the input filename "myfile", and
        !           598: "myfile.myfile" for the input filename ".myfile".
        !           599: Spaces may be included in
        !           600: .Ar outpattern  ,
        !           601: as in the example: `nmap $1 sed "s/  *$//" > $1' .
        !           602: Use the `\e' character to prevent special treatment
        !           603: of the `$','[','[', and `,' characters.
        !           604: .Tp Cx Ic ntrans
        !           605: .Ws
        !           606: .Op Ar inchars Op Ar outchars
        !           607: .Cx
        !           608: Set or unset the filename character translation mechanism.
        !           609: If no arguments are specified, the filename character
        !           610: translation mechanism is unset.
        !           611: If arguments are specified, characters in
        !           612: remote filenames are translated during
        !           613: .Ic mput
        !           614: commands and
        !           615: .Ic put
        !           616: commands issued without a specified remote target filename.
        !           617: If arguments are specified, characters in
        !           618: local filenames are translated during
        !           619: .Ic mget
        !           620: commands and
        !           621: .Ic get
        !           622: commands issued without a specified local target filename.
        !           623: This command is useful when connecting to a non-UNIX remote computer
        !           624: with different file naming conventions or practices.
        !           625: Characters in a filename matching a character in
        !           626: .Ar inchars
        !           627: are replaced with the corresponding character in
        !           628: .Ar outchars  .
        !           629: If the character's position in
        !           630: .Ar inchars
        !           631: is longer than the length of
        !           632: .Ar outchars  ,
        !           633: the character is deleted from the file name.
        !           634: .Tp Cx Ic open
        !           635: .Ws
        !           636: .Ar host
        !           637: .Ws
        !           638: .Op Ar port
        !           639: .Cx
        !           640: Establish a connection to the specified
        !           641: .Ar host
        !           642: FTP server.  An optional port number may be supplied,
        !           643: in which case,
        !           644: .Nm ftp
        !           645: will attempt to contact an FTP server at that port.
        !           646: If the
        !           647: .Ic auto-login
        !           648: option is on (default),
        !           649: .Nm ftp
        !           650: will also attempt to automatically log the user in to
        !           651: the FTP server (see below).
        !           652: .Tp Ic prompt
        !           653: Toggle interactive prompting.  Interactive prompting
        !           654: occurs during multiple file transfers to allow the
        !           655: user to selectively retrieve or store files.
        !           656: If prompting is turned off (default is on), any
        !           657: .Ic mget
        !           658: or
        !           659: .Ic mput
        !           660: will transfer all files, and any
        !           661: .Ic mdelete
        !           662: will delete all files.
        !           663: .Tp Cx Ic proxy
        !           664: .Ws
        !           665: .Ar ftp-command
        !           666: .Cx
        !           667: Execute an ftp command on a secondary control connection.
        !           668: This command allows simultaneous connection to two remote ftp
        !           669: servers for transferring files between the two servers.
        !           670: The first
        !           671: .Ic proxy
        !           672: command should be an
        !           673: .Ic open  ,
        !           674: to establish the secondary control connection.
        !           675: Enter the command "proxy ?" to see other ftp commands executable on the
        !           676: secondary connection.
        !           677: The following commands behave differently when prefaced by
        !           678: .Ic proxy  :
        !           679: .Ic open
        !           680: will not define new macros during the auto-login process,
        !           681: .Ic close
        !           682: will not erase existing macro definitions,
        !           683: .Ic get
        !           684: and
        !           685: .Ic mget
        !           686: transfer files from the host on the primary control connection
        !           687: to the host on the secondary control connection, and
        !           688: .Ic put  ,
        !           689: .Ic mput ,
        !           690: and
        !           691: .Ic append
        !           692: transfer files from the host on the secondary control connection
        !           693: to the host on the primary control connection.
        !           694: Third party file transfers depend upon support of the ftp protocol
        !           695: PASV command by the server on the secondary control connection.
        !           696: .Tp Cx Ic put
        !           697: .Ws
        !           698: .Ar local-file
        !           699: .Ws
        !           700: .Op Ar remote-file
        !           701: .Cx
        !           702: Store a local file on the remote machine.  If
        !           703: .Ar remote-file
        !           704: is left unspecified, the local file name is used
        !           705: after processing according to any
        !           706: .Ic ntrans
        !           707: or
        !           708: .Ic nmap
        !           709: settings
        !           710: in naming the remote file.  File transfer uses the
        !           711: current settings for
        !           712: .Ic type  ,
        !           713: .Ic format ,
        !           714: .Ic mode  ,
        !           715: and
        !           716: .Ic structure  .
        !           717: .Tp Ic pwd
        !           718: Print the name of the current working directory on the remote
        !           719: machine.
        !           720: .Tp Ic quit
        !           721: A synonym for
        !           722: .Ic bye  .
        !           723: .Tp Cx Ic quote
        !           724: .Ws
        !           725: .Ar arg1 arg2 ...
        !           726: .Cx
        !           727: The arguments specified are sent, verbatim, to the remote FTP
        !           728: server.
        !           729: .Tp Cx Ic recv
        !           730: .Ws
        !           731: .Ar remote-file
        !           732: .Ws
        !           733: .Op Ar local-file
        !           734: .Cx
        !           735: A synonym for get.
        !           736: .Tp Cx Ic reget
        !           737: .Ws
        !           738: .Ar remote-file
        !           739: .Ws
        !           740: .Op Ar local-file
        !           741: .Cx
        !           742: Reget acts like get, except that if
        !           743: .Ar local-file
        !           744: exists and is
        !           745: smaller than
        !           746: .Ar remote-file  ,
        !           747: .Ar local-file
        !           748: is presumed to be
        !           749: a partially transferred copy of
        !           750: .Ar remote-file
        !           751: and the transfer
        !           752: is continued from the apparent point of failure. This command
        !           753: is useful when transferring very large files over networks that
        !           754: are prone to dropping connections.
        !           755: .Tp Cx Ic remotehelp
        !           756: .Ws
        !           757: .Op Ar command-name
        !           758: .Cx
        !           759: Request help from the remote FTP server.  If a
        !           760: .Ar command-name
        !           761: is specified it is supplied to the server as well.
        !           762: .Tp Cx Ic remotestatus
        !           763: .Ws
        !           764: .Op Ar file-name
        !           765: .Cx
        !           766: With no arguments, show status of remote machine. If
        !           767: .Ar file-name
        !           768: is specified, show status of
        !           769: .Ar file-name
        !           770: on remote machine.
        !           771: .Tp Cx Ic rename
        !           772: .Ws
        !           773: .Op Ar from
        !           774: .Ws
        !           775: .Op Ar to
        !           776: .Cx
        !           777: Rename the file
        !           778: .Ar from
        !           779: on the remote machine, to the file
        !           780: .Ar to  .
        !           781: .Tp Ic reset
        !           782: Clear reply queue.
        !           783: This command re-synchronizes command/reply sequencing with the remote
        !           784: ftp server.
        !           785: Resynchronization may be necessary following a violation of the ftp protocol
        !           786: by the remote server.
        !           787: .Tp Cx Ic restart
        !           788: .Ws
        !           789: .Ar marker
        !           790: .Cx
        !           791: Restart the immediately following
        !           792: .Ic get
        !           793: or
        !           794: .Ic put
        !           795: at the
        !           796: indicated
        !           797: .Ar marker  .
        !           798: On UNIX systems, marker is usually a byte
        !           799: offset into the file.
        !           800: .Tp Cx Ic rmdir
        !           801: .Ws
        !           802: .Ar directory-name
        !           803: .Cx
        !           804: Delete a directory on the remote machine.
        !           805: .Tp Ic runique
        !           806: Toggle storing of files on the local system with unique filenames.
        !           807: If a file already exists with a name equal to the target
        !           808: local filename for a
        !           809: .Ic get
        !           810: or
        !           811: .Ic mget
        !           812: command, a ".1" is appended to the name.
        !           813: If the resulting name matches another existing file,
        !           814: a ".2" is appended to the original name.
        !           815: If this process continues up to ".99", an error
        !           816: message is printed, and the transfer does not take place.
        !           817: The generated unique filename will be reported.
        !           818: Note that
        !           819: .Ic runique
        !           820: will not affect local files generated from a shell command
        !           821: (see below).
        !           822: The default value is off.
        !           823: .Tp Cx Ic send
        !           824: .Ws
        !           825: .Ar local-file
        !           826: .Ws
        !           827: .Op Ar remote-file
        !           828: .Cx
        !           829: A synonym for put.
        !           830: .Tp Ic sendport
        !           831: Toggle the use of PORT commands.  By default,
        !           832: .Nm ftp
        !           833: will attempt to use a PORT command when establishing
        !           834: a connection for each data transfer.
        !           835: The use of PORT commands can prevent delays
        !           836: when performing multiple file transfers. If the PORT
        !           837: command fails,
        !           838: .Nm ftp
        !           839: will use the default data port.  When the use of PORT
        !           840: commands is disabled, no attempt will be made to use
        !           841: PORT commands for each data transfer.  This is useful
        !           842: for certain FTP implementations which do ignore PORT
        !           843: commands but, incorrectly, indicate they've been accepted.
        !           844: .Tp Cx Ic site
        !           845: .Ws
        !           846: .Ar arg1 arg2 ...
        !           847: .Cx
        !           848: The arguments specified are sent, verbatim, to the remote FTP
        !           849: server as a SITE command.
        !           850: .Tp Cx Ic size
        !           851: .Ws
        !           852: .Ar file-name
        !           853: .Cx
        !           854: Return size of
        !           855: .Ar file-name
        !           856: on remote machine.
        !           857: .Tp Ic status
        !           858: Show the current status of
        !           859: .Nm ftp  .
        !           860: .Tp Cx Ic struct
        !           861: .Ws
        !           862: .Op Ar struct-name
        !           863: .Cx
        !           864: Set the file transfer
        !           865: .Ar structure
        !           866: to
        !           867: .Ar struct-name .
        !           868: By default \*(Lqstream\*(Rq structure is used.
        !           869: .Tp Ic sunique
        !           870: Toggle storing of files on remote machine under unique file names.
        !           871: Remote ftp server must support ftp protocol STOU command for
        !           872: successful completion.
        !           873: The remote server will report unique name.
        !           874: Default value is off.
        !           875: .Tp Ic system
        !           876: Show the type of operating system running on the remote machine.
        !           877: .Tp Ic tenex
        !           878: Set the file transfer type to that needed to
        !           879: talk to TENEX machines.
        !           880: .Tp Ic trace
        !           881: Toggle packet tracing.
        !           882: .Tp Cx Ic type
        !           883: .Ws
        !           884: .Op Ar type-name
        !           885: .Cx
        !           886: Set the file transfer
        !           887: .Ic type
        !           888: to
        !           889: .Ar type-name  .
        !           890: If no type is specified, the current type
        !           891: is printed.  The default type is network ASCII.
        !           892: .Tp Cx Ic umask
        !           893: .Ws
        !           894: .Op Ar newmask
        !           895: .Cx
        !           896: Set the default umask on the remote server to
        !           897: .Ar newmask  .
        !           898: If
        !           899: .Ar newmask
        !           900: is ommitted, the current umask is printed.
        !           901: .Tp Cx Ic user
        !           902: .Ws
        !           903: .Ar user-name
        !           904: .Ws
        !           905: .Op Ar password
        !           906: .Ws
        !           907: .Op Ar account
        !           908: .Cx
        !           909: Identify yourself to the remote FTP server.  If the
        !           910: .Ar password
        !           911: is not specified and the server requires it,
        !           912: .Nm ftp
        !           913: will prompt the user for it (after disabling local echo).
        !           914: If an
        !           915: .Ar account
        !           916: field is not specified, and the FTP server
        !           917: requires it, the user will be prompted for it.
        !           918: If an
        !           919: .Ar account
        !           920: field is specified, an account command will
        !           921: be relayed to the remote server after the login sequence
        !           922: is completed if the remote server did not require it
        !           923: for logging in.
        !           924: Unless
        !           925: .Nm ftp
        !           926: is invoked with \*(Lqauto-login\*(Rq disabled, this
        !           927: process is done automatically on initial connection to
        !           928: the FTP server.
        !           929: .Tp Ic verbose
        !           930: Toggle verbose mode.  In verbose mode, all responses from
        !           931: the FTP server are displayed to the user.  In addition,
        !           932: if verbose is on, when a file transfer completes, statistics
        !           933: regarding the efficiency of the transfer are reported.  By default,
        !           934: verbose is on.
        !           935: .Tp Cx Ic ?
        !           936: .Ws
        !           937: .Op Ar command
        !           938: .Cx
        !           939: A synonym for help.
        !           940: .Tp
        !           941: .Pp
        !           942: Command arguments which have embedded spaces may be quoted with
        !           943: quote `"' marks.
        !           944: .Sh ABORTING A FILE TRANSFER
        !           945: To abort a file transfer, use the terminal interrupt key
        !           946: (usually Ctrl-C).
        !           947: Sending transfers will be immediately halted.
        !           948: Receiving transfers will be halted by sending a ftp protocol ABOR
        !           949: command to the remote server, and discarding any further data received.
        !           950: The speed at which this is accomplished depends upon the remote
        !           951: server's support for ABOR processing.
        !           952: If the remote server does not support the ABOR command, an
        !           953: .Ql ftp>
        !           954: prompt will not appear until the remote server has completed
        !           955: sending the requested file.
        !           956: .Pp
        !           957: The terminal interrupt key sequence will be ignored when
        !           958: .Nm ftp
        !           959: has completed any local processing and is awaiting a reply
        !           960: from the remote server.
        !           961: A long delay in this mode may result from the ABOR processing described
        !           962: above, or from unexpected behavior by the remote server, including
        !           963: violations of the ftp protocol.
        !           964: If the delay results from unexpected remote server behavior, the local
        !           965: .Nm ftp
        !           966: program must be killed by hand.
        !           967: .Sh FILE NAMING CONVENTIONS
        !           968: Files specified as arguments to
        !           969: .Nm ftp
        !           970: commands are processed according to the following rules.
        !           971: .Tw Ds
        !           972: .Tp \&1)
        !           973: If the file name
        !           974: .Sq Fl
        !           975: is specified, the
        !           976: .Ar stdin
        !           977: (for reading) or
        !           978: .Ar stdout
        !           979: (for writing) is used.
        !           980: .Tp \&2)
        !           981: If the first character of the file name is
        !           982: .Sq \&| ,
        !           983: the
        !           984: remainder of the argument is interpreted as a shell command.
        !           985: .Nm Ftp
        !           986: then forks a shell, using
        !           987: .Xr popen 3
        !           988: with the argument supplied, and reads (writes) from the stdout
        !           989: (stdin).  If the shell command includes spaces, the argument
        !           990: must be quoted; e.g. \*(Lq" ls -lt"\*(Rq.  A particularly
        !           991: useful example of this mechanism is: \*(Lqdir more\*(Rq.
        !           992: .Tp \&3)
        !           993: Failing the above checks, if ``globbing'' is enabled,
        !           994: local file names are expanded
        !           995: according to the rules used in the
        !           996: .Xr csh  1  ;
        !           997: c.f. the
        !           998: .Ic glob
        !           999: command.
        !          1000: If the
        !          1001: .Nm ftp
        !          1002: command expects a single local file (.e.g.
        !          1003: .Ic put  ) ,
        !          1004: only the first filename generated by the "globbing" operation is used.
        !          1005: .Tp \&4)
        !          1006: For
        !          1007: .Ic mget
        !          1008: commands and
        !          1009: .Ic get
        !          1010: commands with unspecified local file names, the local filename is
        !          1011: the remote filename, which may be altered by a
        !          1012: .Ic case  ,
        !          1013: .Ic ntrans ,
        !          1014: or
        !          1015: .Ic nmap
        !          1016: setting.
        !          1017: The resulting filename may then be altered if
        !          1018: .Ic runique
        !          1019: is on.
        !          1020: .Tp \&5)
        !          1021: For
        !          1022: .Ic mput
        !          1023: commands and
        !          1024: .Ic put
        !          1025: commands with unspecified remote file names, the remote filename is
        !          1026: the local filename, which may be altered by a
        !          1027: .Ic ntrans
        !          1028: or
        !          1029: .Ic nmap
        !          1030: setting.
        !          1031: The resulting filename may then be altered by the remote server if
        !          1032: .Ic sunique
        !          1033: is on.
        !          1034: .Tp
        !          1035: .Sh FILE TRANSFER PARAMETERS
        !          1036: The FTP specification specifies many parameters which may
        !          1037: affect a file transfer.  The
        !          1038: .Ic type
        !          1039: may be one of \*(Lqascii\*(Rq, \*(Lqimage\*(Rq (binary),
        !          1040: \*(Lqebcdic\*(Rq, and \*(Lqlocal byte size\*(Rq (for PDP-10's
        !          1041: and PDP-20's mostly).
        !          1042: .Nm Ftp
        !          1043: supports the ascii and image types of file transfer,
        !          1044: plus local byte size 8 for
        !          1045: .Ic tenex
        !          1046: mode transfers.
        !          1047: .Pp
        !          1048: .Nm Ftp
        !          1049: supports only the default values for the remaining
        !          1050: file transfer parameters:
        !          1051: .Ic mode  ,
        !          1052: .Ic form ,
        !          1053: and
        !          1054: .Ic struct  .
        !          1055: .Sh THE .netrc FILE
        !          1056: The
        !          1057: .Pa .netrc
        !          1058: file contains login and initialization information
        !          1059: used by the auto-login process.
        !          1060: It resides in the user's home directory.
        !          1061: The following tokens are recognized; they may be separated by spaces,
        !          1062: tabs, or new-lines:
        !          1063: .Tw password
        !          1064: .Tp Cx Ic machine
        !          1065: .Ws
        !          1066: .Ar name
        !          1067: .Cx
        !          1068: Identify a remote machine
        !          1069: .Ar name .
        !          1070: The auto-login process searches the
        !          1071: .Pa .netrc
        !          1072: file for a
        !          1073: .Ic machine
        !          1074: token that matches the remote machine specified on the
        !          1075: .Nm ftp
        !          1076: command line or as an
        !          1077: .Ic open
        !          1078: command argument.
        !          1079: Once a match is made, the subsequent
        !          1080: .Pa .netrc
        !          1081: tokens are processed,
        !          1082: stopping when the end of file is reached or another
        !          1083: .Ic machine
        !          1084: or a
        !          1085: .Ic default
        !          1086: token is encountered.
        !          1087: .Tp Ic default
        !          1088: This is the same as
        !          1089: .Ic machine
        !          1090: .Ar name
        !          1091: except that
        !          1092: .Ic default
        !          1093: matches any name.
        !          1094: There can be only one
        !          1095: .Ic default
        !          1096: token, and it must be after all
        !          1097: .Ic machine
        !          1098: tokens.
        !          1099: This is normally used as:
        !          1100: .Pp
        !          1101: .Dl default login anonymous password user@site
        !          1102: .Pp
        !          1103: thereby giving the user
        !          1104: .Ar automatic
        !          1105: anonymous ftp login to
        !          1106: machines not specified in
        !          1107: .Pa .netrc .
        !          1108: This can be overridden
        !          1109: by using the
        !          1110: .Fl n
        !          1111: flag to disable auto-login.
        !          1112: .Tp Cx Ic login
        !          1113: .Ws
        !          1114: .Ar name
        !          1115: .Cx
        !          1116: Identify a user on the remote machine.
        !          1117: If this token is present, the auto-login process will initiate
        !          1118: a login using the specified
        !          1119: .Ar name .
        !          1120: .Tp Cx Ic password
        !          1121: .Ws
        !          1122: .Ar string
        !          1123: .Cx
        !          1124: Supply a password.
        !          1125: If this token is present, the auto-login process will supply the
        !          1126: specified string if the remote server requires a password as part
        !          1127: of the login process.
        !          1128: Note that if this token is present in the
        !          1129: .Pa .netrc
        !          1130: file for any user other
        !          1131: than
        !          1132: .Ar anonymous  ,
        !          1133: .Nm ftp
        !          1134: will abort the auto-login process if the
        !          1135: .Pa .netrc
        !          1136: is readable by
        !          1137: anyone besides the user.
        !          1138: .Tp Cx Ic account
        !          1139: .Ws
        !          1140: .Ar string
        !          1141: .Cx
        !          1142: Supply an additional account password.
        !          1143: If this token is present, the auto-login process will supply the
        !          1144: specified string if the remote server requires an additional
        !          1145: account password, or the auto-login process will initiate an
        !          1146: ACCT command if it does not.
        !          1147: .Tp Cx Ic macdef
        !          1148: .Ws
        !          1149: .Ar name
        !          1150: .Cx
        !          1151: Define a macro.
        !          1152: This token functions like the
        !          1153: .Nm ftp
        !          1154: .Ic macdef
        !          1155: command functions.
        !          1156: A macro is defined with the specified name; its contents begin with the
        !          1157: next
        !          1158: .Pa .netrc
        !          1159: line and continue until a null line (consecutive new-line
        !          1160: characters) is encountered.
        !          1161: If a macro named
        !          1162: .Ic init
        !          1163: is defined, it is automatically executed as the last step in the
        !          1164: auto-login process.
        !          1165: .Tp
        !          1166: .Sh ENVIRONMENT
        !          1167: .Nm Ftp
        !          1168: utilizes the following environment variables.
        !          1169: .Tw Fl
        !          1170: .Tp Ev HOME
        !          1171: For default location of a
        !          1172: .Pa .netrc
        !          1173: file, if one exists.
        !          1174: .Tp Ev SHELL
        !          1175: For default shell.
        !          1176: .Tp
        !          1177: .Sh SEE ALSO
        !          1178: .Xr ftpd 8
        !          1179: .Sh HISTORY
        !          1180: .Nm Ftp
        !          1181: appeared in 4.2 BSD.
        !          1182: .Sh BUGS
        !          1183: Correct execution of many commands depends upon proper behavior
        !          1184: by the remote server.
        !          1185: .Pp
        !          1186: An error in the treatment of carriage returns
        !          1187: in the 4.2BSD UNIX ascii-mode transfer code
        !          1188: has been corrected.
        !          1189: This correction may result in incorrect transfers of binary files
        !          1190: to and from 4.2BSD servers using the ascii type.
        !          1191: Avoid this problem by using the binary image type.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.