Commit | Line | Data |
---|---|---|
a154ee89 | 1 | .\" Copyright (c) 1985 Regents of the University of California. |
9e7fc5bf KM |
2 | .\" All rights reserved. The Berkeley software License Agreement |
3 | .\" specifies the terms and conditions for redistribution. | |
4 | .\" | |
cd8a871b | 5 | .\" @(#)ftp.1 6.8 (Berkeley) %G% |
9e7fc5bf | 6 | .\" |
a154ee89 | 7 | .TH FTP 1C "April 29, 1985" |
9e7fc5bf KM |
8 | .UC 5 |
9 | .SH NAME | |
1609770c | 10 | ftp \- ARPANET file transfer program |
9e7fc5bf KM |
11 | .SH SYNOPSIS |
12 | .B ftp | |
13 | [ | |
14 | .B \-v | |
15 | ] [ | |
16 | .B \-d | |
17 | ] [ | |
18 | .B \-i | |
19 | ] [ | |
20 | .B \-n | |
21 | ] [ | |
22 | .B \-g | |
23 | ] [ | |
a154ee89 | 24 | .B host |
9e7fc5bf KM |
25 | ] |
26 | .SH DESCRIPTION | |
27 | .I Ftp | |
28 | is the user interface to the ARPANET standard File Transfer Protocol. | |
a154ee89 GM |
29 | The program allows a user to transfer files to and from a |
30 | remote network site. | |
31 | .PP | |
9e7fc5bf KM |
32 | The client host with which |
33 | .I ftp | |
34 | is to communicate may be specified on the command line. | |
35 | If this is done, | |
36 | .I ftp | |
a154ee89 GM |
37 | will immediately attempt to establish a connection to an FTP |
38 | server on that host; otherwise, | |
39 | .I ftp | |
40 | will enter its command interpreter and await instructions | |
41 | from the user. When | |
42 | .I ftp | |
43 | is awaiting commands from the user the prompt \*(lqftp>\*(rq | |
adbdb3c0 | 44 | is provided to the user. The following commands are recognized |
9e7fc5bf KM |
45 | by |
46 | .IR ftp : | |
47 | .TP | |
a154ee89 GM |
48 | \fB\&!\fP [ \fIcommand\fP [ \fIargs\fP ] ] |
49 | Invoke an interactive shell on the local machine. | |
50 | If there are arguments, the first is taken to be a command to execute | |
51 | directly, with the rest of the arguments as its arguments. | |
52 | .TP | |
53 | \fB\&$\fP \fImacro-name\fP [ \fIargs\fP ] | |
54 | Execute the macro \fImacro-name\fP that was defined with the | |
55 | \fBmacdef\fP command. | |
56 | Arguments are passed to the macro unglobbed. | |
57 | .TP | |
58 | \fBaccount\fP [ \fIpasswd\fP ] | |
59 | Supply a supplemental password required by a remote system for access | |
60 | to resources once a login has been successfully completed. | |
61 | If no argument is included, the user will be prompted for an account | |
62 | password in a non-echoing input mode. | |
9e7fc5bf KM |
63 | .TP |
64 | \fBappend\fP \fIlocal-file\fP [ \fIremote-file\fP ] | |
65 | Append a local file to a file on the remote machine. If | |
66 | .I remote-file | |
67 | is left unspecified, the local file name is used in naming the | |
a154ee89 GM |
68 | remote file after being altered by any |
69 | .I ntrans | |
70 | or | |
71 | .I nmap | |
72 | setting. | |
73 | File transfer uses the current settings for | |
74 | .IR type , | |
75 | .IR format , | |
76 | .IR mode , | |
77 | and | |
78 | .IR structure . | |
9e7fc5bf KM |
79 | .TP |
80 | .B ascii | |
a154ee89 GM |
81 | Set the file transfer |
82 | .I type | |
83 | to network ASCII. This is the default type. | |
9e7fc5bf KM |
84 | .TP |
85 | .B bell | |
86 | Arrange that a bell be sounded after each file transfer | |
87 | command is completed. | |
88 | .TP | |
89 | .B binary | |
a154ee89 GM |
90 | Set the file transfer |
91 | .I type | |
92 | to support binary image transfer. | |
9e7fc5bf KM |
93 | .TP |
94 | .B bye | |
95 | Terminate the FTP session with the remote server | |
96 | and exit | |
97 | .IR ftp . | |
3c604e97 | 98 | An end of file will also terminate the session and exit. |
9e7fc5bf | 99 | .TP |
a154ee89 GM |
100 | .B case |
101 | Toggle remote computer file name case mapping during | |
102 | .B mget | |
103 | commands. | |
104 | When | |
105 | .B case | |
106 | is on (default is off), remote computer file names with all letters in | |
107 | upper case are written in the local directory with the letters mapped | |
108 | to lower case. | |
109 | .TP | |
9e7fc5bf KM |
110 | .BI cd " remote-directory" |
111 | Change the working directory on the remote machine | |
112 | to | |
113 | .IR remote-directory . | |
114 | .TP | |
a154ee89 GM |
115 | .B cdup |
116 | Change the remote machine working directory to the parent of the | |
117 | current remote machine working directory. | |
118 | .TP | |
9e7fc5bf KM |
119 | .B close |
120 | Terminate the FTP session with the remote server, and | |
121 | return to the command interpreter. | |
a154ee89 GM |
122 | Any defined macros are erased. |
123 | .TP | |
124 | .B cr | |
125 | Toggle carriage return stripping during | |
126 | ascii type file retrieval. | |
127 | Records are denoted by a carriage return/linefeed sequence | |
128 | during ascii type file transfer. | |
129 | When | |
130 | .B cr | |
131 | is on (the default), carriage returns are stripped from this | |
132 | sequence to conform with the UNIX single linefeed record | |
133 | delimiter. | |
134 | Records on non-UNIX remote systems may contain single linefeeds; | |
135 | when an ascii type transfer is made, these linefeeds may be | |
136 | distinguished from a record delimiter only when | |
137 | .B cr | |
138 | is off. | |
9e7fc5bf KM |
139 | .TP |
140 | .BI delete " remote-file" | |
141 | Delete the file | |
142 | .I remote-file | |
143 | on the remote machine. | |
144 | .TP | |
145 | \fBdebug\fP [ \fIdebug-value\fP ] | |
146 | Toggle debugging mode. If an optional | |
147 | .I debug-value | |
148 | is specified it is used to set the debugging level. | |
149 | When debugging is on, | |
150 | .I ftp | |
151 | prints each command sent to the remote machine, preceded | |
152 | by the string \*(lq-->\*(rq. | |
153 | .TP | |
154 | \fBdir\fP [ \fIremote-directory\fP ] [ \fIlocal-file\fP ] | |
155 | Print a listing of the directory contents in the | |
156 | directory, | |
157 | .IR remote-directory , | |
158 | and, optionally, placing the output in | |
159 | .IR local-file . | |
cd8a871b KB |
160 | If interactive prompting is on, |
161 | .I ftp | |
162 | will prompt the user to verify that the last argument is indeed the | |
163 | target local file for receiving | |
164 | .B dir | |
165 | output. | |
9e7fc5bf KM |
166 | If no directory is specified, the current working |
167 | directory on the remote machine is used. If no local | |
a154ee89 | 168 | file is specified, or \fIlocal-file\fP is \fB-\fP, |
1609770c | 169 | output comes to the terminal. |
9e7fc5bf | 170 | .TP |
a154ee89 GM |
171 | .B disconnect |
172 | A synonym for | |
173 | .BR close . | |
174 | .TP | |
175 | .BI form " format" | |
176 | Set the file transfer | |
177 | .I form | |
178 | to | |
179 | .IR format . | |
180 | The default format is \*(lqfile\*(rq. | |
9e7fc5bf KM |
181 | .TP |
182 | \fBget\fP \fIremote-file\fP [ \fIlocal-file\fP ] | |
183 | Retrieve the | |
184 | .I remote-file | |
185 | and store it on the local machine. If the local | |
186 | file name is not specified, it is given the same | |
a154ee89 GM |
187 | name it has on the remote machine, subject to |
188 | alteration by the current | |
189 | .IR case , | |
190 | .IR ntrans , | |
191 | and | |
192 | .I nmap | |
193 | settings. | |
194 | The current settings for | |
195 | .IR type , | |
196 | .IR form , | |
197 | .IR mode , | |
198 | and | |
199 | .I structure | |
9e7fc5bf KM |
200 | are used while transferring the file. |
201 | .TP | |
a154ee89 GM |
202 | \fBglob\fP |
203 | Toggle filename expansion for \fBmdelete\fP, \fBmget\fP and \fBmput\fP. | |
204 | If globbing is turned off with \fBglob\fP, the file name arguments | |
205 | are taken literally and not expanded. | |
206 | Globbing for \fBmput\fP is done as in \fBcsh\fP(1). | |
207 | For \fBmdelete\fP and \fBmget\fP, each remote file name is expanded | |
208 | separately on the remote machine and the lists are not merged. | |
209 | Expansion of a directory name is likely to be | |
1609770c | 210 | different from expansion of the name of an ordinary file: |
a154ee89 GM |
211 | the exact result depends on the foreign operating system and ftp server, |
212 | and can be previewed by doing `\fBmls\fP\ \fIremote-files\fP\ \fB-\fP'. | |
213 | Note: \fBmget\fP and \fBmput\fP are not meant to transfer | |
214 | entire directory subtrees of files. That can be done by | |
215 | transferring a \fBtar\fP(1) archive of the subtree (in binary mode). | |
1609770c | 216 | .TP |
a154ee89 | 217 | \fBhash\f |
9e7fc5bf KM |
218 | Toggle hash-sign (``#'') printing for each data block |
219 | transferred. The size of a data block is 1024 bytes. | |
220 | .TP | |
9e7fc5bf KM |
221 | \fBhelp\fP [ \fIcommand\fP ] |
222 | Print an informative message about the meaning of | |
223 | .IR command . | |
224 | If no argument is given, | |
225 | .I ftp | |
226 | prints a list of the known commands. | |
227 | .TP | |
228 | \fBlcd\fP [ \fIdirectory\fP ] | |
229 | Change the working directory on the local machine. If | |
230 | no | |
231 | .I directory | |
232 | is specified, the user's home directory is used. | |
233 | .TP | |
234 | \fBls\fP [ \fIremote-directory\fP ] [ \fIlocal-file\fP ] | |
235 | Print an abbreviated listing of the contents of a | |
236 | directory on the remote machine. If | |
237 | .I remote-directory | |
cd8a871b KB |
238 | is left unspecified, the current working directory is used. |
239 | If interactive prompting is on, | |
240 | .I ftp | |
241 | will prompt the user to verify that the last argument is indeed the | |
242 | target local file for receiving | |
243 | .B ls | |
244 | output. | |
245 | If no local file is specified, or if \fIlocal-file\fR is \fB-\fR, | |
1609770c KM |
246 | the output is sent to the terminal. |
247 | .TP | |
a154ee89 GM |
248 | \fBmacdef\fP \fImacro-name\fP |
249 | Define a macro. | |
250 | Subsequent lines are stored as the macro | |
251 | \fImacro-name\fP; a null line (consecutive newline characters | |
252 | in a file or | |
253 | carriage returns from the terminal) terminates macro input mode. | |
254 | There is a limit of 16 macros and 4096 total characters in all | |
255 | defined macros. | |
256 | Macros remain defined until a | |
257 | .B close | |
258 | command is executed. | |
259 | The macro processor interprets '$' and '\\' as special characters. | |
260 | A '$' followed by a number (or numbers) is replaced by the | |
261 | corresponding argument on the macro invocation command line. | |
262 | A '$' followed by an 'i' signals that macro processor that the | |
263 | executing macro is to be looped. On the first pass '$i' is | |
264 | replaced by the first argument on the macro invocation command line, | |
265 | on the second pass it is replaced by the second argument, and so on. | |
266 | A '\\' followed by any character is replaced by that character. | |
267 | Use the '\\' to prevent special treatment of the '$'. | |
268 | .TP | |
1609770c KM |
269 | \fBmdelete\fP [ \fIremote-files\fP ] |
270 | Delete the \fIremote-files\fP on the remote machine. | |
271 | .TP | |
cd800a97 | 272 | \fBmdir\fP \fIremote-files\fP \fIlocal-file\fP |
1609770c | 273 | Like \fBdir\fP, except multiple remote files may be specified. |
a154ee89 GM |
274 | If interactive prompting is on, |
275 | .I ftp | |
276 | will prompt the user to verify that the last argument is indeed the | |
277 | target local file for receiving | |
278 | .B mdir | |
279 | output. | |
9e7fc5bf KM |
280 | .TP |
281 | \fBmget\fP \fIremote-files\fP | |
1609770c KM |
282 | Expand the \fIremote-files\fP on the remote machine |
283 | and do a \fBget\fP for each file name thus produced. | |
284 | See \fBglob\fR for details on the filename expansion. | |
a154ee89 GM |
285 | Resulting file names will then be processed according to |
286 | .IR case , | |
287 | .IR ntrans , | |
288 | and | |
289 | .I nmap | |
290 | settings. | |
1609770c | 291 | Files are transferred into the local working directory, |
a154ee89 GM |
292 | which can be changed with `\fBlcd\fP\ directory'; |
293 | new local directories can be created with `\fB!\fP\ mkdir\ directory'. | |
9e7fc5bf KM |
294 | .TP |
295 | \fBmkdir\fP \fIdirectory-name\fP | |
296 | Make a directory on the remote machine. | |
297 | .TP | |
cd800a97 | 298 | \fBmls\fP \fIremote-files\fP \fIlocal-file\fP |
1609770c | 299 | Like \fBls\fP, except multiple remote files may be specified. |
a154ee89 GM |
300 | If interactive prompting is on, |
301 | .I ftp | |
302 | will prompt the user to verify that the last argument is indeed the | |
303 | target local file for receiving | |
304 | .B mls | |
305 | output. | |
9e7fc5bf KM |
306 | .TP |
307 | \fBmode\fP [ \fImode-name\fP ] | |
a154ee89 GM |
308 | Set the file transfer |
309 | .I mode | |
310 | to | |
9e7fc5bf | 311 | .IR mode-name . |
a154ee89 | 312 | The default mode is \*(lqstream\*(rq mode. |
9e7fc5bf KM |
313 | .TP |
314 | \fBmput\fP \fIlocal-files\fP | |
1609770c KM |
315 | Expand wild cards in the list of local files given as arguments |
316 | and do a \fBput\fR for each file in the resulting list. | |
317 | See \fBglob\fP for details of filename expansion. | |
a154ee89 GM |
318 | Resulting file names will then be processed according to |
319 | .I ntrans | |
320 | and | |
321 | .I nmap | |
322 | settings. | |
323 | .TP | |
324 | \fBnmap\fP [ \fIinpattern\fP \fIoutpattern\fP ] | |
325 | Set or unset the filename mapping mechanism. | |
326 | If no arguments are specified, the filename mapping mechanism is unset. | |
327 | If arguments are specified, remote filenames are mapped during | |
328 | .B mput | |
329 | commands and | |
330 | .B put | |
331 | commands issued without a specified remote target filename. | |
332 | If arguments are specified, local filenames are mapped during | |
333 | .B mget | |
334 | commands and | |
335 | .B get | |
336 | commands issued without a specified local target filename. | |
337 | This command is useful when connecting to a non-UNIX remote computer | |
338 | with different file naming conventions or practices. | |
339 | The mapping follows the pattern set by | |
340 | .I inpattern | |
341 | and | |
342 | .IR outpattern . | |
343 | .I Inpattern | |
344 | is a template for incoming filenames (which may have already been | |
345 | processed according to the | |
346 | .B ntrans | |
347 | and | |
348 | .B case | |
349 | settings). | |
2c32d7db | 350 | Variable templating is accomplished by including the sequences '$1', '$2', ..., '$9' in |
a154ee89 GM |
351 | .IR inpattern . |
352 | Use '\\' to prevent this special treatment of the '$' character. | |
353 | All other characters are treated literally, and are used to determine the | |
354 | .B nmap | |
355 | .I inpattern | |
356 | variable values. | |
357 | For exmaple, given | |
358 | .I inpattern | |
359 | $1.$2 and the remote file name "mydata.data", $1 would have the value | |
360 | "mydata", and $2 would have the value "data". | |
361 | The | |
362 | .I outpattern | |
363 | determines the resulting mapped filename. | |
364 | The sequences '$1', '$2', ...., '$9' are replaced by any value resulting | |
365 | from the | |
366 | .I inpattern | |
367 | template. | |
368 | The sequence '$0' is replace by the original filename. | |
369 | Additionally, the sequence '[\fIseq1\fP,\fIseq2\f\P]' is replaced by | |
370 | .I seq1 | |
371 | if | |
372 | .I seq1 | |
373 | is not a null string; otherwise it is replaced by | |
374 | .IR seq2 . | |
375 | For example, the command "nmap $1.$2.$3 [$1,$2].[$2,file]" would yield | |
376 | the output filename "myfile.data" for input filenames "myfile.data" and | |
377 | "myfile.data.old", "myfile.file" for the input filename "myfile", and | |
378 | "myfile.myfile" for the input filename ".myfile". | |
379 | Spaces may be included in | |
380 | .IR outpattern , | |
381 | as in the example: nmap $1 |sed "s/ *$//" > $1 . | |
382 | Use the '\\' character to prevent special treatment | |
383 | of the '$', '[', ']', and ',' characters. | |
384 | .TP | |
385 | \fBntrans\fP [ \fIinchars\fP [ \fIoutchars\fP ] ] | |
386 | Set or unset the filename character translation mechanism. | |
387 | If no arguments are specified, the filename character | |
388 | translation mechanism is unset. | |
389 | If arguments are specified, characters in | |
390 | remote filenames are translated during | |
391 | .B mput | |
392 | commands and | |
393 | .B put | |
394 | commands issued without a specified remote target filename. | |
395 | If arguments are specified, characters in | |
396 | local filenames are translated during | |
397 | .B mget | |
398 | commands and | |
399 | .B get | |
400 | commands issued without a specified local target filename. | |
401 | This command is useful when connecting to a non-UNIX remote computer | |
402 | with different file naming conventions or practices. | |
403 | Characters in a filename matching a character in | |
404 | .I inchars | |
405 | are replaced with the corresponding character in | |
406 | .IR outchars . | |
407 | If the character's position in | |
408 | .I inchars | |
409 | is longer than the length of | |
410 | .IR outchars , | |
411 | the character is deleted from the file name. | |
9e7fc5bf KM |
412 | .TP |
413 | \fBopen\fP \fIhost\fP [ \fIport\fP ] | |
414 | Establish a connection to the specified | |
415 | .I host | |
416 | FTP server. An optional port number may be supplied, | |
417 | in which case, | |
418 | .I ftp | |
419 | will attempt to contact an FTP server at that port. | |
420 | If the | |
421 | .I auto-login | |
422 | option is on (default), | |
423 | .I ftp | |
424 | will also attempt to automatically log the user in to | |
425 | the FTP server (see below). | |
426 | .TP | |
427 | .B prompt | |
428 | Toggle interactive prompting. Interactive prompting | |
429 | occurs during multiple file transfers to allow the | |
1609770c | 430 | user to selectively retrieve or store files. |
a154ee89 | 431 | If prompting is turned off (default is on), any \fBmget\fP or \fBmput\fP |
1609770c | 432 | will transfer all files, and any \fBmdelete\fP will delete all files. |
9e7fc5bf | 433 | .TP |
a154ee89 GM |
434 | \fBproxy\fP \fIftp-command\fP |
435 | Execute an ftp command on a secondary control connection. | |
436 | This command allows simultaneous connection to two remote ftp | |
437 | servers for transferring files between the two servers. | |
438 | The first | |
439 | .B proxy | |
440 | command should be an | |
441 | .BR open , | |
442 | to establish the secondary control connection. | |
443 | Enter the command "proxy ?" to see other ftp commands executable on the | |
444 | secondary connection. | |
98a310f2 | 445 | The following commands behave differently when prefaced by |
a154ee89 GM |
446 | .BR proxy : |
447 | .B open | |
448 | will not define new macros during the auto-login process, | |
449 | .B close | |
450 | will not erase existing macro definitions, | |
451 | .B get | |
452 | and | |
453 | .B mget | |
454 | transfer files from the host on the primary control connection | |
455 | to the host on the secondary control connection, and | |
456 | .BR put , | |
457 | .BR mput , | |
458 | and | |
459 | .B append | |
460 | transfer files from the host on the secondary control connection | |
461 | to the host on the primary control connection. | |
462 | Third party file transfers depend upon support of the ftp protocol | |
463 | PASV command by the server on the secondary control connection. | |
464 | .TP | |
9e7fc5bf KM |
465 | \fBput\fP \fIlocal-file\fP [ \fIremote-file\fP ] |
466 | Store a local file on the remote machine. If | |
467 | .I remote-file | |
468 | is left unspecified, the local file name is used | |
a154ee89 GM |
469 | after processing according to any |
470 | .I ntrans | |
471 | or | |
472 | .I nmap | |
473 | settings | |
9e7fc5bf | 474 | in naming the remote file. File transfer uses the |
a154ee89 GM |
475 | current settings for |
476 | .IR type , | |
477 | .IR format , | |
478 | .IR mode , | |
479 | and | |
480 | .IR structure . | |
9e7fc5bf KM |
481 | .TP |
482 | .B pwd | |
483 | Print the name of the current working directory on the remote | |
484 | machine. | |
485 | .TP | |
486 | .B quit | |
3c604e97 JL |
487 | A synonym for |
488 | .BR bye . | |
9e7fc5bf | 489 | .TP |
a154ee89 GM |
490 | .BI quote " arg1 arg2 ..." |
491 | The arguments specified are sent, verbatim, to the remote FTP | |
492 | server. | |
9e7fc5bf KM |
493 | .TP |
494 | \fBrecv\fP \fIremote-file\fP [ \fIlocal-file\fP ] | |
a154ee89 | 495 | A synonym for get. |
9e7fc5bf KM |
496 | .TP |
497 | \fBremotehelp\fP [ \fIcommand-name\fP ] | |
498 | Request help from the remote FTP server. If a | |
499 | .I command-name | |
500 | is specified it is supplied to the server as well. | |
501 | .TP | |
a154ee89 | 502 | \fBrename\fP [ \fIfrom\fP ] [ \fIto\fP ] |
9e7fc5bf KM |
503 | Rename the file |
504 | .I from | |
a154ee89 | 505 | on the remote machine, to the file |
9e7fc5bf KM |
506 | .IR to . |
507 | .TP | |
a154ee89 GM |
508 | .B reset |
509 | Clear reply queue. | |
510 | This command re-synchronizes command/reply sequencing with the remote | |
511 | ftp server. | |
512 | Resynchronization may be neccesary following a violation of the ftp protocol | |
513 | by the remote server. | |
514 | .TP | |
9e7fc5bf KM |
515 | .BI rmdir " directory-name" |
516 | Delete a directory on the remote machine. | |
517 | .TP | |
a154ee89 GM |
518 | .B runique |
519 | Toggle storing of files on the local system with unique filenames. | |
520 | If a file already exists with a name equal to the target | |
521 | local filename for a | |
522 | .B get | |
523 | or | |
524 | .B mget | |
2c32d7db | 525 | command, a ".1" is appended to the name. |
a154ee89 GM |
526 | If the resulting name matches another existing file, |
527 | a ".2" is appended to the original name. | |
528 | If this process continues up to ".99", an error | |
529 | message is printed, and the transfer does not take place. | |
530 | The generated unique filename will be reported. | |
531 | Note that | |
532 | .B runique | |
533 | will not affect local files generated from a shell command | |
534 | (see below). | |
535 | The default value is off. | |
536 | .TP | |
9e7fc5bf | 537 | \fBsend\fP \fIlocal-file\fP [ \fIremote-file\fP ] |
a154ee89 | 538 | A synonym for put. |
9e7fc5bf KM |
539 | .TP |
540 | .B sendport | |
541 | Toggle the use of PORT commands. By default, | |
542 | .I ftp | |
543 | will attempt to use a PORT command when establishing | |
a154ee89 GM |
544 | a connection for each data transfer. |
545 | The use of PORT commands can prevent delays | |
546 | when performing multiple file transfers. If the PORT | |
9e7fc5bf KM |
547 | command fails, |
548 | .I ftp | |
549 | will use the default data port. When the use of PORT | |
550 | commands is disabled, no attempt will be made to use | |
551 | PORT commands for each data transfer. This is useful | |
a154ee89 GM |
552 | for certain FTP implementations which do ignore PORT |
553 | commands but, incorrectly, indicate they've been accepted. | |
9e7fc5bf KM |
554 | .TP |
555 | .B status | |
556 | Show the current status of | |
557 | .IR ftp . | |
558 | .TP | |
559 | \fBstruct\fP [ \fIstruct-name\fP ] | |
a154ee89 GM |
560 | Set the file transfer |
561 | .I structure | |
562 | to | |
9e7fc5bf | 563 | .IR struct-name . |
a154ee89 GM |
564 | By default \*(lqstream\*(rq structure is used. |
565 | .TP | |
566 | .B sunique | |
567 | Toggle storing of files on remote machine under unique file names. | |
568 | Remote ftp server must support ftp protocol STOU command for | |
569 | successful completion. | |
570 | The remote server will report unique name. | |
571 | Default value is off. | |
9e7fc5bf KM |
572 | .TP |
573 | .B tenex | |
a154ee89 | 574 | Set the file transfer type to that needed to |
9e7fc5bf KM |
575 | talk to TENEX machines. |
576 | .TP | |
577 | .B trace | |
a154ee89 | 578 | Toggle packet tracing. |
9e7fc5bf KM |
579 | .TP |
580 | \fBtype\fP [ \fItype-name\fP ] | |
a154ee89 GM |
581 | Set the file transfer |
582 | .I type | |
583 | to | |
9e7fc5bf KM |
584 | .IR type-name . |
585 | If no type is specified, the current type | |
a154ee89 | 586 | is printed. The default type is network ASCII. |
9e7fc5bf KM |
587 | .TP |
588 | \fBuser\fP \fIuser-name\fP [ \fIpassword\fP ] [ \fIaccount\fP ] | |
589 | Identify yourself to the remote FTP server. If the | |
590 | password is not specified and the server requires it, | |
591 | .I ftp | |
592 | will prompt the user for it (after disabling local echo). | |
593 | If an account field is not specified, and the FTP server | |
a154ee89 GM |
594 | requires it, the user will be prompted for it. |
595 | If an account field is specified, an account command will | |
596 | be relayed to the remote server after the login sequence | |
597 | is completed if the remote server did not require it | |
598 | for logging in. | |
599 | Unless | |
9e7fc5bf KM |
600 | .I ftp |
601 | is invoked with \*(lqauto-login\*(rq disabled, this | |
602 | process is done automatically on initial connection to | |
603 | the FTP server. | |
604 | .TP | |
605 | .B verbose | |
606 | Toggle verbose mode. In verbose mode, all responses from | |
607 | the FTP server are displayed to the user. In addition, | |
a154ee89 | 608 | if verbose is on, when a file transfer completes, statistics |
9e7fc5bf | 609 | regarding the efficiency of the transfer are reported. By default, |
a154ee89 | 610 | verbose is on. |
9e7fc5bf KM |
611 | .TP |
612 | \fB?\fP [ \fIcommand\fP ] | |
a154ee89 GM |
613 | A synonym for help. |
614 | .PP | |
9e7fc5bf KM |
615 | Command arguments which have embedded spaces may be quoted with |
616 | quote (") marks. | |
a154ee89 | 617 | .SH "ABORTING A FILE TRANSFER" |
98a310f2 | 618 | To abort a file transfer, use the terminal interrupt key |
a154ee89 GM |
619 | (usually Ctrl-C). |
620 | Sending transfers will be immediately halted. | |
621 | Receiving transfers will be halted by sending a ftp protocol ABOR | |
622 | command to the remote server, and discarding any further data received. | |
623 | The speed at which this is accomplished depends upon the remote | |
624 | server's support for ABOR processing. | |
98a310f2 | 625 | If the remote server does not support the ABOR command, an "ftp>" |
a154ee89 GM |
626 | prompt will not appear until the remote server has completed |
627 | sending the requested file. | |
628 | .PP | |
629 | The terminal interrupt key sequence will be ignored when | |
630 | .I ftp | |
631 | has completed any local processing and is awaiting a reply | |
632 | from the remote server. | |
633 | A long delay in this mode may result from the ABOR processing described | |
634 | above, or from unexpected behavior by the remote server, including | |
635 | violations of the ftp protocol. | |
636 | If the delay results from unexpected remote server behavior, the local | |
cd800a97 | 637 | .I ftp |
a154ee89 | 638 | program must be killed by hand. |
9e7fc5bf | 639 | .SH "FILE NAMING CONVENTIONS" |
a154ee89 | 640 | Files specified as arguments to |
9e7fc5bf KM |
641 | .I ftp |
642 | commands are processed according to the following rules. | |
643 | .TP | |
644 | 1) | |
a154ee89 GM |
645 | If the file name \*(lq\-\*(rq is specified, the |
646 | .B stdin | |
647 | (for reading) or | |
648 | .B stdout | |
9e7fc5bf KM |
649 | (for writing) is used. |
650 | .TP | |
651 | 2) | |
652 | If the first character of the file name is \*(lq|\*(rq, the | |
653 | remainder of the argument is interpreted as a shell command. | |
a154ee89 | 654 | .I Ftp |
9e7fc5bf | 655 | then forks a shell, using |
a154ee89 GM |
656 | .IR popen (3) |
657 | with the argument supplied, and reads (writes) from the stdout | |
658 | (stdin). If the shell command includes spaces, the argument | |
9e7fc5bf KM |
659 | must be quoted; e.g. \*(lq"| ls -lt"\*(rq. A particularly |
660 | useful example of this mechanism is: \*(lqdir |more\*(rq. | |
661 | .TP | |
662 | 3) | |
a154ee89 | 663 | Failing the above checks, if ``globbing'' is enabled, |
9e7fc5bf KM |
664 | local file names are expanded |
665 | according to the rules used in the | |
666 | .IR csh (1); | |
a154ee89 | 667 | c.f. the |
9e7fc5bf | 668 | .I glob |
a154ee89 GM |
669 | command. |
670 | If the | |
671 | .I ftp | |
672 | command expects a single local file ( .e.g. | |
673 | .BR put ), | |
674 | only the first filename generated by the "globbing" operation is used. | |
675 | .TP | |
676 | 4) | |
677 | For | |
678 | .B mget | |
679 | commands and | |
680 | .B get | |
681 | commands with unspecified local file names, the local filename is | |
682 | the remote filename, which may be altered by a | |
683 | .BR case , | |
684 | .BR ntrans , | |
685 | or | |
686 | .B nmap | |
687 | setting. | |
688 | The resulting filename may then be altered if | |
689 | .B runique | |
690 | is on. | |
691 | .TP | |
692 | 5) | |
693 | For | |
694 | .B mput | |
695 | commands and | |
696 | .B put | |
697 | commands with unspecified remote file names, the remote filename is | |
698 | the local filename, which may be altered by a | |
699 | .B ntrans | |
700 | or | |
701 | .B nmap | |
702 | setting. | |
703 | The resulting filename may then be altered by the remote server if | |
704 | .B sunique | |
705 | is on. | |
9e7fc5bf KM |
706 | .SH "FILE TRANSFER PARAMETERS" |
707 | The FTP specification specifies many parameters which may | |
a154ee89 GM |
708 | affect a file transfer. The |
709 | .I type | |
710 | may be one of \*(lqascii\*(rq, \*(lqimage\*(rq (binary), | |
711 | \*(lqebcdic\*(rq, and \*(lqlocal byte size\*(rq (for PDP-10's | |
712 | and PDP-20's mostly). | |
713 | .I Ftp | |
714 | supports the ascii and image types of file transfer, | |
715 | plus local byte size 8 for \fBtenex\fP mode transfers. | |
716 | .PP | |
717 | .I Ftp | |
718 | supports only the default values for the remaining | |
719 | file transfer parameters: | |
720 | .IR mode , | |
721 | .IR form , | |
722 | and | |
723 | .IR struct . | |
9e7fc5bf KM |
724 | .SH OPTIONS |
725 | Options may be specified at the command line, or to the | |
726 | command interpreter. | |
a154ee89 GM |
727 | .PP |
728 | The | |
9e7fc5bf | 729 | .B \-v |
a154ee89 | 730 | (verbose on) option forces |
9e7fc5bf | 731 | .I ftp |
a154ee89 GM |
732 | to show all responses from the remote server, as well |
733 | as report on data transfer statistics. | |
734 | .PP | |
735 | The | |
9e7fc5bf | 736 | .B \-n |
a154ee89 GM |
737 | option restrains |
738 | .I ftp | |
739 | from attempting \*(lqauto-login\*(rq upon initial connection. | |
9e7fc5bf KM |
740 | If auto-login is enabled, |
741 | .I ftp | |
a154ee89 GM |
742 | will check the |
743 | .I .netrc | |
744 | (see below) file in the user's home directory for an entry describing | |
9e7fc5bf KM |
745 | an account on the remote machine. If no entry exists, |
746 | .I ftp | |
a154ee89 GM |
747 | will prompt for the remote machine login name (default is the user |
748 | identity on the local machine), and, if necessary, prompt for a password | |
749 | and an account with which to login. | |
750 | .PP | |
751 | The | |
9e7fc5bf | 752 | .B \-i |
a154ee89 GM |
753 | option turns off interactive prompting during |
754 | multiple file transfers. | |
755 | .PP | |
756 | The | |
cd800a97 | 757 | .B \-d |
a154ee89 GM |
758 | option enables debugging. |
759 | .PP | |
760 | The | |
761 | .B \-g | |
762 | option disables file name globbing. | |
763 | .SH "THE .netrc FILE" | |
764 | The .netrc file contains login and initialization information | |
765 | used by the auto-login process. | |
766 | It resides in the user's home directory. | |
767 | The following tokens are recognized; they may be separated by spaces, | |
768 | tabs, or new-lines: | |
769 | .TP | |
770 | \fBmachine\fP \fIname\fP | |
771 | Identify a remote machine name. | |
772 | The auto-login process searches the .netrc file for a | |
773 | .B machine | |
2c32d7db | 774 | token that matches the remote machine specified on the |
a154ee89 GM |
775 | .I ftp |
776 | command line or as an | |
777 | .B open | |
778 | command argument. | |
a154ee89 GM |
779 | Once a match is made, the subsequent .netrc tokens are processed, |
780 | stopping when the end of file is reached or another | |
781 | .B machine | |
782 | token is encountered. | |
783 | .TP | |
784 | \fBlogin\fP \fIname\fP | |
785 | Identify a user on the remote machine. | |
786 | If this token is present, the auto-login process will initiate | |
787 | a login using the specified name. | |
788 | .TP | |
789 | \fBpassword\fP \fIstring\fP | |
790 | Supply a password. | |
791 | If this token is present, the auto-login process will supply the | |
792 | specified string if the remote server requires a password as part | |
793 | of the login process. | |
794 | Note that if this token is present in the .netrc file, | |
795 | .I ftp | |
796 | will abort the auto-login process if the .netrc is readable by | |
797 | anyone besides the user. | |
798 | .TP | |
799 | \fBaccount\fP \fIstring\fP | |
800 | Supply an additional account password. | |
801 | If this token is present, the auto-login process will supply the | |
802 | specified string if the remote server requires an additional | |
803 | account password, or the auto-login process will initiate an | |
804 | ACCT command if it does not. | |
805 | .TP | |
806 | \fBmacdef\fP \fIname\fP | |
807 | Define a macro. | |
808 | This token functions like the | |
809 | .I ftp | |
810 | .B macdef | |
811 | command functions. | |
812 | A macro is defined with the specified name; its contents begin with the | |
813 | next .netrc line and continue until a null line (consecutive new-line | |
814 | characters) is encountered. | |
815 | If a macro named | |
816 | .I init | |
817 | is defined, it is automatically executed as the last step in the | |
818 | auto-login process. | |
9e7fc5bf | 819 | .SH BUGS |
a154ee89 GM |
820 | Correct execution of many commands depends upon proper behavior |
821 | by the remote server. | |
cd800a97 | 822 | .PP |
98a310f2 MK |
823 | An error in the treatment of carriage returns |
824 | in the 4.2BSD UNIX ascii-mode transfer code | |
a154ee89 GM |
825 | has been corrected. |
826 | This correction may result in incorrect transfers of binary files | |
98a310f2 | 827 | to and from 4.2BSD servers using the ascii type. |
a154ee89 | 828 | Avoid this problem by using the binary image type. |