tail head cat sleep
QR code linking to this page

Man page  — FTP

명칭

ftp ARPANET 파일 전송 프로그램

내용

서식


ftp [-46adeginptUvV] [-P port] [-s src_addr] [host [port]]
ftp ftp://[user:password@]host[:port]/file[/]
ftp http://host[:port]/file
ftp host:[/path/]file[/]

해설

ftp (은)는, ARPANET 표준의 파일 전송 프로토콜을 이용해 파일 전송을 실현하기 위한 명령입니다. 본명령은, 네트워크를 개입시켜 접속되고 있는 컴퓨터간에 파일을 전송 하는 수단을 유저에게 제공합니다. 본버젼은, IPv4 와 함께, IPv6 (인터넷 프로토콜 버젼 6)를 서포트합니다.

서식의 뒤로부터 3 개의 사용 예의 형식에서는 HTTP 또는 FTP 프로토콜의 어느쪽이든을 사용해 파일을 커런트 디렉토리에 취득합니다. 이것은 스크립트용으로 이상적입니다. 보다 자세한 정보에 대해서는 파일의 자동적인 취득 (을)를 참조해 주세요.

옵션은, 명령행상인가, 커멘드 인터프리터로 지정할 수 있습니다.
-4
  ftp 에 IPv4 주소만을 사용하도록(듯이) 강제합니다.
-6
  ftp 에 IPv6 주소만을 사용하도록(듯이) 강제합니다.
-a
  ftp (은)는 통상의 로그인 수속을 날려, 대신에 anonymous 로그인을 사용합니다.
-d
  디버그를 유효하게 합니다.
-e
  명령행에서의 편집을 무효로 합니다.
-g
  파일명 전개를 무효로 합니다.
-i
  복수 파일 전송을 실시하고 있는 동안의 대화적 prompt 모드를 오프로 합니다.
-n
  ftp 하지만 최초로 접속할 때의 "자동 로그인" (을)를 실시하지 않습니다. 자동 로그인이 허가되었을 경우는, ftp (은)는 기동한 유저의 홈 디렉토리의 .netrc (아래와 같이 참조) 파일에, 리모트 머신의 어카운트를 기술하고 있다 엔트리가 있는지 어떤지를 조사합니다. 그 파일에 엔트리가 없는 경우에는, ftp (은)는 리모트 머신상의 로그인명 (디폴트는 로컬 머신에서의 유저 ID)를 요구합니다. 그리고, 만약 필요가 있으면 로그인용의 패스워드와 어카운트의 입력도 재촉합니다.
-p
  방화벽을 넘는 접속을 위한 패시브 모드 조작을 유효하게 합니다. pftp 명령을 사용하는 것과 같습니다.
-P port
  포트 번호를 port (으)로 설정합니다.
-s src_addr
  모든 접속에 사용하는 로컬측의 IP 주소를 src_addr (으)로 설정합니다. IP 주소와 호스트명의 어디라도 지정할 수 있습니다.
-t
  패킷의 트레이스를 유효하게 합니다.
-U
  데이터포트의 범위 제한을 무효로 합니다.
-v
  요설 모드를 유효하게 합니다. 입력이 단말로부터의 경우는 이것이 디폴트입니다. ftp (은)는 데이터 전송 상황과 리모트 서버로부터의 모든 리스폰스를 표시합니다.
-V
  입력이 단말로부터의 경우에, 디폴트로 유효하게 되어 있는 것을 무시해 요설 모드를 무효로 합니다.

ftp (은)는, 통신 상대를 명령행으로 지정할 수가 있습니다. 통신 상대를 명령행으로 지정했을 경우, ftp (은)는 지정한 리모트 머신의 FTP 서버 프로그램과의 접속을 시도합니다. 그 이외의 경우, ftp (은)는 내부의 명령 인터프리터에 들어가, 유저로부터의 명령 입력을 기다립니다. 이 때 ftp (은)는, ‘ftp>’ 그렇다고 하는 prompt를 출력합니다. 본 서간문태때로는, ftp (은)는 이하의 명령을 받아들입니다.
! [command [args]]
  로컬 머신상에서 쉘을 기동합니다. 인수가 지정되었을 경우, 최초의 인수를 명령로서 실행해, 그 이후의 인수는 그 명령에 대한 인수로서 처리됩니다.
$ macro-name [args]
  macro-name 그리고 정의된 매크로를 실행합니다. 매크로는, macdef 명령로 정의 할 수 있습니다. args 그리고 지정된 캐릭터 라인은, 전개되지 않고 매크로에 대해서 인도해집니다.
account [passwd]
  일단 로그인에 성공한 유저가, 자원을 취급하기 위해서(때문에) 리모트 머신으로부터 요구된 추가의 패스워드를 입력합니다. 인수가 지정되지 않는 경우, 유저에 대해서 패스워드 입력을 재촉하는 표시가 됩니다. 이 경우는 패스워드는 반향 되지 않습니다.
append local-file [remote-file]
  로컬 파일을 리모트 머신상의 파일에 추가 기입합니다. 만약, remote-file 하지만 지정되어 있지 않으면, 로컬 파일의 이름을 ntrans (이)나 nmap 그리고 수정한 이름을 리모트 파일명으로서 사용합니다. 파일 전송에서는 type, format, mode, structure 의 현재의 설정이 사용됩니다.
ascii 전송 파일의 type (을)를 네트워크 ASCII 형식으로 합니다. 이것은 디폴트시의 설정입니다.
bell 각 파일 전송 명령 종료시에 벨을 울리는지 어떤지를 지정합니다.
binary
  전송 파일의 type (을)를 바이너리 형식으로 합니다. 이미지 파일 등, 바이노리필드를 전송 할 때에는 본지정은 필수입니다.
bye 리모트 서버와의 FTP 세션을 종료해, ftp (을)를 종료합니다. EOF 를 입력했을 경우도 같습니다.
case mget 명령로 연속해 파일을 취득하는 경우, 리모트 머신상의 파일명의 대문자 소문자의 대응을 바꿉니다. 디폴트에서는 case (은)는 오프입니다만, 온의 경우에는 리모트 머신 파일명의 모든 대문자가 소문자에 변환되어, 로컬 머신의 디렉토리에 기입해집니다.
cd remote-directory
  리모트 머신상에서의 작업 디렉토리를 remote-directory 에 변경합니다.
cdup 리모트 머신상에서의 작업 디렉토리를 하나상으로 변경시킵니다.
chmod mode file-name
  file-name 그리고 지정한 리모트 머신상의 파일의 속성을, mode 그리고 지정한 것으로 변경합니다.
close 리모트 서버와의 FTP 세션을 종료합니다. 그리고 명령 입력 기다리는 prompt를 표시합니다. 벌써 정의된 매크로는 모두 무효가 됩니다.
cr ASCII 형식 파일의 전송을 행하는 경우에, 복귀 코드의 제거를 행하는지 어떤지를 변경합니다. ASCII 형식의 파일 전송시에는, 복귀/개행 의 캐릭터 라인에 의해 레코드가 인식됩니다. cr 하지만 온 (디폴트)때로는, 개행 코드만으로 레코드를 단락짓는다 Unix 에 적합하도록(듯이), 복귀 코드가 캐릭터 라인으로부터 제거됩니다. Unix 이외의 리모트의 시스템의 레코드는 단독의 개행 코드를 포함할 가능성이 있습니다. ASCII 형식에서 전송을 실시했을 때에는, 그렇게 말한 개행 코드는 cr 하지만 오프의 경우에만 레코드 단락 기호와 구별해 다루어집니다.
delete remote-file
  리모트 머신상의 파일 remote-file (을)를 삭제합니다.
debug [debug-value]
  디버그 모드를 바꿉니다. debug-value 하지만 지정되면(자) 디버그 레벨로서 설정됩니다. 디버그 모드가 유효하게 되면(자), ftp (은)는 리모트 머신에 송신된 명령을 ‘-->’ 에 이어 표시합니다.
dir [remote-directory [local-file]]
  리모트 머신상의 디렉토리의 내용을 표시합니다. 표시 내용에는 서버가 선택한 시스템 의존의 정보를 포함합니다. 예를 들면 대부분의 Unix 시스템은 ‘ls -l’ 명령로부터 얻을 수 있는 출력을 표시합니다. ( ls 도 참조해 주세요) 만약 remote-directory 하지만 지정되지 않으면, 리모트 머신상의 커런트 디렉토리의 내용이 표시됩니다. 만약 prompt가 온이라면, ftp (은)는, 마지막 인수가 정말로 dir 의 출력을 기입하는 로컬 파일인지 어떤지 문의합니다. 로컬 파일의 지정이 없는 경우, 또는 local-file 의 지정이 '-' (이었)였던 경우는 출력은 화면에 표시됩니다.

본명령은 시스템 의존의 추가 정보를 제공하기 때문에, 단순한 파일 리스트를 갖고 싶은 경우에는, nlist (을)를 사용해 주세요.

disconnect
  close (와)과 같습니다.
edit 명령행의 편집 기능, 그리고 문맥에 응한 커멘드와 파일의 보완 기능을 바꿉니다. 이것은 입력이 단말의 경우는 자동적으로 유효하게 되어, 그리고 그렇지 않으면 무효가 됩니다.
epsv4 IPv4 FTP 세션으로 EPSV/EPRT 명령을 사용하는지 어떤지를 바꿉니다. 본옵션을 오프로 하면(자), 파이야워르 (예를 들면 IPFilter)와의 문제를 해소할 수 있을지도 모릅니다.
exit bye (와)과 같습니다.
ftp host [port]
  open (와)과 같습니다.
form format
  파일 전송 양식을 format (와)과 지정합니다. 디폴트에서는, 양식은 “file” 가 됩니다.
get remote-file [local-file]
  리모트 머신상의 파일 remote-file (을)를 취득해 로컬 머신상에 격납합니다. 로컬 파일명 local file 하지만 지정되지 않는 경우, 로컬 파일명은 취득한 파일의 리모트 머신상의 이름과 같게 됩니다. 다만, 그 이름은 case, ntrans, nmap 의 설정에 의해 변경되는 것이 있습니다. 파일 전송때에는 현재의 type, form, mode, structure 의 설정이 사용됩니다.
gate [host [port]]
  gate-ftp 모드를 바꿉니다. 이것은 gate-ftp 서버가 설정되어 있지 않으면 유효하게 되지 않습니다 (유저에 의해 명시적으로, 또는 FTPSERVER 환경 변수에 의해). host 하지만 주어지면(자), gate-ftp 모드가 유효하게 되어, 그리고 gate-ftp 서버가 host (으)로 설정됩니다. port 도 동시에 주어지면(자), 그것이 gate-ftp 서버에 접속할 때의 포트로서 사용됩니다.
glob mdelete, mget, mput (을)를 행하는 경우의 파일명의 전개의 온/오프를 바꿉니다. glob 하지만 오프의 경우에는, 파일명은 전개되지 않고 그대로 됩니다. mput 에서의 파일명 전개의 규칙은 csh(1) [영어] 의 파일명 전개 규칙과 같습니다. mdelete (와)과 mget 의 경우에는, 각각의 리모트 파일명은 리모트 머신상에서 따로 따로 전개되어 리스트는 merge 되지 않습니다. 디렉토리명의 전개는 보통 파일명의 전개와 다른 것이 있습니다. 즉, 전개의 결과는 리모트의 OS 와 FTP 서버에 의존하고 있습니다. 이것은 ‘mls remote-files -’ (을)를 실행하는 일에 의해 미리 알 수가 있습니다. 주: mget (와)과 mput (은)는 파일의 디렉토리·서브 트리를 모두 전송 하는 것이 아닙니다. 그처럼 하고 싶을 때는 서브 트리의 tar(1) 의 아카이브(archive)를 작성해 바이너리 모드로 전송 합니다.
hash [size]
  1 데이터 블록 전송 할 때 마다 해시 싸인 (``#'')을 출력하는지 어떤지를 바꿉니다. 디폴트에서는 1 데이터 블록은 1024byte 입니다. 이것은 size 그리고 바이트 단위로 지정하는 일로 변경할 수 있습니다.
help [command]
  인수 command 그리고 지정한 명령의 헬프 메세지를 출력합니다. 인수가 주어지지 않는 경우, ftp (은)는 사용 가능한 명령의 일람을 출력합니다.
idle [seconds]
  리모트 서버상의 idle timer를 seconds 초로 설정합니다. seconds 하지만 주어지지 않는 경우는 현재의 idle timer치를 표시합니다.
lcd [directory]
  로컬 머신상의 작업 디렉토리를 변경합니다. directory 이름이 주어지지 않는 경우는 유저의 홈 디렉토리로 이동합니다.
less file
  page (와)과 같습니다.
lpwd 로컬 머신상의 작업 디렉토리를 표시합니다.
ls [remote-directory [local-file]]
  dir (와)과 같습니다.
macdef macro-name
  매크로 정의를 행합니다. 후속의 행이 매크로 macro-name (으)로서 격납됩니다. 공행 (1 개의 파일내에서의 연속한 개행 캐릭터나 단말로부터가 연속했다 복귀 캐릭터)는 매크로의 입력 모드를 종료시킵니다. 매크로의 수의 제한은 16 개로, 정의된 매크로 전부 4096 캐릭터까지가 용서해지고 있습니다. 매크로는 close 명령이 실행될 때까지 지속합니다. 매크로 프로세서는 `$'와 `\'를 특별한 캐릭터로서 해석합니다. 1개이상의 숫자가 계속되는 `$'는, 명령행으로 호출한 매크로의 대응하는 인수에 의해 옮겨놓을 수 있습니다. 뒤로 `i'가 계속되는 `$'는, 매크로 프로세서에 대해서 실행하고 있다 매크로의 루프를 지시합니다. 최초의 패스로 `$i'는 매크로를 호출한 명령행의 최초의 인수에 옮겨놓을 수 있어 2 번째의 패스로 2 번째의 인수로 옮겨져 그 이후도 (와)과 같이 옮겨놓을 수 있습니다. 뒤로 임의의 캐릭터가 계속되고 있는 `\'는 그 캐릭터로 옮겨집니다. `\'는 `$'의 특별한 취급을 피하기 위해서(때문에) 사용합니다.
mdelete [remote-files]
  리모트 머신의 remote-files (을)를 삭제합니다.
mdir remote-files local-file
  복수의 리모트 파일을 지정 할 수 있는 점을 제외하면(자) dir (와)과 같습니다. prompt가 온때로는, ftp (은)는 마지막 인수가 mdir 의 출력을 받는 로컬 파일일까를 유저에게 문의합니다.
mget remote-files
  리모트 머신으로 remote-files 그리고 지정된 파일을 전개해, 전개 후의 각 파일명의 파일에 대해서 get (을)를 실행합니다. 파일명의 전개의 자세한 것은 glob (을)를 참조해 주세요. 생성된 파일명은 case, ntrans, nmap 의 설정에 따라 처리됩니다. 파일은 로컬의 작업 디렉토리에 전송 됩니다. 그 디렉토리는 ‘lcd directory’ 그리고 변경할 수 있습니다. 로컬의 새로운 디렉토리는 ‘! mkdir directory’ 그리고 작성할 수 있습니다.
mkdir directory-name
  리모트 머신에 디렉토리를 만듭니다.
mls remote-files local-file
  복수의 리모트 파일명을 지정할 수 있는 점과 local-file (을)를 반드시 지정해야 하는 점을 제외하면(자) ls (와)과 같습니다. prompt가 온때로는, ftp (은)는 마지막 인수가 mls 의 출력을 받는 목표의 로컬 파일일까를 유저에게 확인합니다.
mode [mode-name]
  파일 전송 모드 mode (을)를 mode-name 그리고 지정한 것으로 설정합니다. 디폴트는 “stream” 입니다.
modtime file-name
  리모트 머신상의 지정 파일의 최종 갱신 일시를 참조합니다.
more file
  page (와)과 같습니다.
mput local-files
  인수로서 주어진 로컬 파일의 리스트중의 와일드 카드를 전개해, 전개 후의 각 파일명의 파일에 대해서 put (을)를 실행합니다. 파일명의 전개의 상세한 것에 대하여는 glob (을)를 참조해 주세요. 생성된 파일명은 ntrans (와)과 nmap 의 설정에 따라 처리됩니다.
msend local-files
  mput (와)과 같습니다.
newer file-name
  리모트 머신의 파일의 최종 갱신 일시가 로컬 머신의 파일보다 새로운 경우에게만 파일을 취득합니다. 현재의 시스템에 파일이 없을 때에는, 리모트 파일이 새롭다 것으로 해 다루어집니다. 그 외에 대해서는 get (와)과 같습니다.
nlist [remote-directory [local-file]]
  리모트 머신의 디렉토리의 내용의 리스트를 표시합니다. remote-directory 의 지정이 없는 경우에는, 대신에 현재의 작업 디렉토리가 사용됩니다. 만약 prompt 모드가 되어 있다면, ftp (은)는, 마지막 인수가 ls 의 출력을 받는 로컬의 파일일까를 유저에게 문의합니다. local-file 의 지정이 없는 경우나 - 하지만 지정되어 있는 경우에는, 출력은 화면에 표시됩니다.

본명령이 리모트 디렉토리안의 파일 일람을 돌려주는 것만으로 있는 것에 주의해 주세요. 파일에 대한 한층 더 정보 (대개는 크기나 수정 시각등)를 갖고 싶은 경우, dir (을)를 사용해 주세요.

nmap [inpattern outpattern]
  파일명의 매핑 기능을 설정하거나 해제하거나 합니다. 인수가 없는 경우에는 매핑 기능이 해제됩니다. 인수가 있는 경우에는, 출력처의 리모트 파일명의 지정되어 있지 않다 mput 명령와 put 명령의 실행시에, 리모트 파일명이 MAP 됩니다. 동일한 일이 mget 명령와 get 명령의 로컬 파일명에 대해서도 행해집니다. 이 명령은 파일의 명명 규칙이 다르다 Unix (이)가 아닌 리모트 머신과의 접속시에 편리합니다. 매핑은 inpattern (와)과 outpattern 에 의해 설정된 패턴에 따라 행해집니다. [inpattern] (은)는 (벌써 ntrans (와)과 case 에 의해 처리되고 있을지도 모르다) 입력 파일명을 위한 템플릿입니다. inpattern 에 `$1', `$2', ..., `$9'의 캐릭터 라인을 포함하는 것에 의해, 변수를 사용한 템플릿도 사용할 수 있습니다. `$'를 특별 취급 하고 싶지 않을 때에는 `\'를 사용해 주세요. 다른 캐릭터는 그대로 그 캐릭터로서 다루어져 nmap 의 [inpattern] 변수의 값을 결정하는데 이용됩니다. 예를 들면, inpattern (으)로서 $1. $2 하지만, 리모트 파일의 이름으로서 "mydata.data" 가 주어졌을 때에,$1 는 "mydata" 라고 하는 값이 되어, $2 (은)는 "data" 라고 하는 값이 됩니다. outpattern (은)는 생성되는 매핑 후의 파일명을 결정합니다. 캐릭터 라인의 `$1', `$2', ...., `$9'는 inpattern 의 템플릿으로부터 생성되는 값으로 옮겨집니다. 캐릭터 라인의 `$0'는 원래의 파일명으로 옮겨놓을 수 있습니다. 게다가 캐릭터 라인의 ‘[seq1 , seq2]’ 하 seq1 하지만 공문자열이 아닐 때에는 [seq1] 에, 공문자열때에는 [seq2] (으)로 옮겨집니다. 예를 들면 명령

nmap $1. $2. $3 [$1,$2]. [$2, file]

(은)는, 입력 파일명 "myfile.data" 와 "myfile.data.old" 에 대해서 출력 파일명이 "myfile.data" 가 되어, 입력 파일명 "myfile" 에 대해서 출력 파일명이 "myfile.file" 가 되어, 입력 파일명 ".myfile" 에 대해서 출력 파일명이 "myfile.myfile"가 됩니다. 예를 들면, `nmap $1 sed "s/ *$//" > $1' (와)과 같이, outpattern 에는 스페이스가 들어가 있어도 상관하지 않습니다. 캐릭터 `$', `[', `]', `, '를 특별 취급 하고 싶지 않을 때에는 `\'를 사용해 주세요.

ntrans [inchars [outchars]]
  파일명의 캐릭터 변환 기능을 설정하거나 해제하거나 합니다. 인수가 없는 경우에는 캐릭터 변환 기능이 해제됩니다. 인수가 있는 경우에는, 출력처의 리모트 파일명의 지정되어 있지 않다 mput 명령와 put 명령의 실행시에 리모트 파일명이 변환됩니다. 동일한 일이 mget 명령와 get 명령에서도 로컬 파일에 대해서 행해집니다. 이 명령은, Unix (와)과는 다른 파일 명명 규칙의 리모트 머신과의 접속시에 유효합니다. 파일명중의 캐릭터로, inchars 안의 캐릭터에 일치하는 것이 outchars 의 대응하는 캐릭터로 옮겨집니다. inchars 중(안)에서의 캐릭터의 위치가 outchars 의 길이를 넘고 있을 때에는, 그 캐릭터는 파일명으로부터 삭제됩니다.
open host [port]
  지정했다 host FTP 서버와의 connection를 확립합니다. 포트 번호 port (을)를 지정했을 경우, ftp (은)는 지정한 포트 번호를 이용해 FTP 서버와의 connection의 확립을 시도합니다. 자동 로그인 옵션이 온 (디폴트시)의 경우에는, ftp (은)는 자동적으로 FTP 서버에 대해서 로그인을 행합니다 (이하를 참조).
page file
  file (을)를 취득해, PAGER 그리고 지정된 프로그램 (디폴트는 more(1) [영어] )(을)를 사용해 표시합니다.
passive
  패시브 모드를 바꿉니다. 패시브 모드가 온 (디폴트는 오프)(이)라면, ftp 클라이언트는 모든 데이터 connection에 대해, 통상의 PORT 명령 대신에 PASV 명령을 보냅니다. PASV 명령은 리모트의 서버에 데이터 connection를 위한 포트를 열어, 그 포트의 주소를 돌려주도록(듯이) 요구합니다. 리모트 서버는 그 포트로 기다려, 클라이언트는 거기에 접속합니다. 보다 전통적인 PORT 명령을 사용하는 경우는, 클라이언트가 포트로 기다려, 그리고 그 주소를 리모트 서버에 보내 리모트 서버는 거기에 접속해 옵니다. 패시브 모드는 게이트웨이·라우터나 트래픽의 방향을 제어하고 있는 호스트를 경유해 ftp (을)를 사용하는 경우에 유용합니다. (주: ftp 서버가 RFC 1123 의 PASV 명령을 서포트하고 있을 필요가 있습니다만, 서포트하고 있지 않다 경우도 있습니다. IPv6 서버에 접속하고 있는 경우, EPSV/EPRT 페어와 LPSV/LPRT 페어를 사용해, PASV (와)과 PORT (은)는 사용하지 않는 것에 주의해 주세요. 외는 같습니다. )
preserve
  받은 파일의 갱신 일시를 보존하는지 어떤지를 바꿉니다.
progress
  전송의 진행 상황을 나타내는 막대 그래프 표시를 바꿉니다. 이 막대 그래프는, 로컬 파일 (으)로서 '-' 인가 '|' 그리고 시작되는 명령이 지정된 전송에서는 표시되지 않습니다. 자세하게는 파일명의 규칙 (을)를 참조해 주세요.
prompt
  대화적 prompt 모드를 바꿉니다. 대화적 prompt 모드를 온으로 하는 것으로, 복수 파일 전송시에 전송 파일의 선택을 행할 수 있습니다. 대화적 prompt 모드를 오프로 하면(자) (디폴트는 온), mget (이)나 mput 그리고 지정한 파일은 모두 전송 되어 mdelete 그리고 지정한 파일은 모두 삭제됩니다.

prompt 모드가 온때로는, prompt에 대해 이하의 명령을 사용할 수 있습니다:

n 파일을 전송 하지 않습니다.
a 현재의 파일에 대해 'yes' (으)로 해, 자동적으로 현재의 명령에 대한 나머지의 모든 파일에 대해서도 'yes' (으)로 합니다.
p 현재의 파일에 대해 'yes' (으)로 해, prompt 모드를 오프로 합니다 (마치 "prompt off" 하지만 지정되었는지와 같이).

이외의 응답은 현재의 파일에 대한다 'yes' (으)로서 다루어집니다.
proxy ftp-command
  ftp 명령을 2 차 제어 접속상에서 실행합니다. 본명령을 이용하는 것으로, 동시에 2 개의 리모트 머신과 connection를 확립해, 2 개의 서버간에 파일 전송을 행하도록(듯이) 할 수가 있게 됩니다. 최초의 proxy 명령은 open 명령일 필요가 있습니다. 이것은, 2 차적인 제어 connection를 확립하기 위해서 필요한 조작입니다. "proxy ? " (와)과 명령을 실행하는 것으로, 2 차 접속하에서 사용 가능한 명령 일람이 표시됩니다. 이하의 명령은 proxy 의 후에 있었을 때에는 다른 기능을 합니다. open (은)는 자동 로그인 처리중에는 새로운 매크로의 정의를 실시하지 않습니다. close (은)는 매크로의 삭제를 실시하지 않습니다. get (와)과 mget (은)는 1차 제어 접속의 호스트로부터 2차 제어 접속의 호스트에 파일의 전송을 실시합니다. put (와)과 mput (와)과 append (은)는 2차 제어 접속의 호스트로부터 1차 제어 접속의 호스트에 파일의 전송을 실시합니다. 제삼자의 파일 전송은, 2차 제어 접속의 서버가 FTP 프로토콜의 PASV 명령을 서포트하고 있는지 어떤지에 의존합니다.
put local-file [remote-file]
  로컬 머신상의 지정 파일을 리모트 머신에 전송 합니다. remote-file 하지만 지정되지 않는 경우에는, 전송처에서의 파일명은, ntrans 인가 nmap 의 설정에 근거하는 처리를 실시한 로컬 파일의 이름이 이용됩니다. 파일 전송에는 type, format, mode, structure 의 현재의 설정이 이용됩니다.
pwd 현재의 리모트 머신상에서의 작업 디렉토리를 표시합니다.
quit bye (와)과 같습니다.
quote arg1 arg2 ...
  인수로 지정한 캐릭터 라인을, 그대로 리모트 FTP 서버에 송신합니다.
recv remote-file [local-file]
  get (와)과 같습니다.
reget remote-file [local-file]
  get와 닮아 있습니다만, local-file 하지만 존재하고 있어 remote-file 보다 사이즈가 작은 경우에는, local-file 하지만 리모트 파일의 일부이라고 간주라고 계속을 카피하는 점이 다릅니다. 본명령은, 큰 파일의 전송중에 connection가 절단 되어 버렸을 경우의 계속을 수신 다시 하는 경우 등에 유용합니다.
remotehelp [command-name]
  리모트 FTP 서버의 헬프 메세지를 요구합니다. command-name 하지만 지정되었을 경우에는 그 명령의 헬프가 표시됩니다.
rstatus [file-name]
  인수가 없는 경우에는 리모트 머신의 스테이터스가 표시됩니다. file-name 하지만 지정되어 있는 경우에는, 리모트 머신상의 지정 파일의 스테이터스가 표시됩니다.
rename [from [to]]
  리모트 머신상의 파일 from 하지만, to 그렇다고 하는 파일명에 rename 됩니다.
reset 리플라이 큐를 클리어 합니다. 본명령은 커멘드/리플라이의 순차 순서의 재동기를 잡는데 사용됩니다. 재동기를 취하는 것은 ftp 프로토콜상의 장해가 발생했을 때에 필요한 조작입니다.
restart marker
  get (이)나 put (을)를 지정했다 marker 위치로부터 재개합니다. Unix 시스템에 대해서는, 통상 marker 는 파일의 바이트 오프셋(offset)로 지정합니다.
restrict
  데이터포트의 폭을 제한할까를 온/오프 합니다. 패시브 모드가 아닐 때에, ftp 클라이언트는 리모트 서버에 대해서, 독립한 데이터포트로 클라이언트 호스트에 접속해 오는 것을 요구합니다. 전의 버젼에서는, 그 리모트 포트는 1024 에서 4999 까지의 폭에 들어가고 있었습니다. 그러나 대부분의 방화벽 (fire wall)에서는, 그 범위에 다른 서비스가 어느 TCP 포트를 필터링 하고 있습니다. 현재의 디폴트의 동작에서는, 포트 번호가 49152 에서 65535 의 사이로, 서버가 클라이언트에 대해서 접속해 오는 것을 요구합니다. 만약 보안상의 위험성이 없다고 생각한다면, 방화벽 관리자는 그 폭에서의 TCP 접속에 대해서 허가를 실시한다고 하는 선택을 할 수 있습니다.
rmdir directory-name
  리모트 머신상의 디렉토리를 소거합니다.
runique
  로컬 머신에 보존되는 파일에 대해서 독특한 이름을 부가하는지 어떤지를 바꿉니다. get (이)나 mget 명령로 목적의 로컬 파일과 같은 이름의 파일이 이미 존재할 때에는, ". 1" 이 이름에 부가됩니다. 그 이름도 이미 존재할 때에는 ". 2" 가 부가됩니다. 이와 같이 차례로 처리를 해, ". 99" 가 되어도 존재할 때에는 에러 메세지가 표시되어 전송은 행해지지 않습니다. 생성된 독특한 파일명은 보고됩니다. 주: runique (은)는 쉘 명령로 생성되는 파일명에는 효과가 없습니다 (아래와 같이 참조). 디폴트에서는 오프가 되어 있습니다.
send local-file [remote-file]
  put (와)과 같습니다.
sendport
  PORT 명령을 사용하는지 어떤지 바꿉니다. 디폴트에서는, ftp (은)는 각 데이터 전송용의 connection의 확립 시에 PORT 명령의 사용을 시도합니다. PORT (을)를 사용하는 것으로 복수 파일 전송을 행하는 경우의 지연을 피할 수가 있습니다. PORT 명령이 실패했을 경우, ftp (은)는 디폴트의 데이터·포트를 사용합니다. PORT 명령이 무효가 되었을 경우, 데이터 전송시에 PORT 명령은 사용되지 않습니다. 이것은 어떤 종류의 FTP 의 실장으로 PORT 명령은 무시하지만, 잘못하고 있어, 받아들였다고 대답을 돌려주는 것 같은 물건에 대해서 유효합니다.
site arg1 arg2 ...
  인수로 지정한 캐릭터 라인을, SITE 명령의 인수로서 그대로 FTP 서버에 송신합니다.
size file-name
  리모트 머신상의 file-name 그리고 지정한 파일의 사이즈를 표시합니다.
status
  ftp 의 현재 상태를 표시합니다.
struct [struct-name]
  파일 전송의 structure (을)를 struct-name (으)로 설정합니다. 디폴트에서는,“stream” 로 설정되어 있습니다.
sunique
  리모트 머신상에 전송 하는 파일의 파일명에 대해서, 일의인 이름을 부여하는지 어떤지를 바꿉니다. 이 기능을 사용할 수 있기 위해서(때문에)는, 리모트의 FTP 서버가 FTP 의 프로토콜의 STOU 명령을 서포트하고 있지 않으면 안됩니다. 리모트 서버가 독특한 이름을 보고합니다. 디폴트에서는 이 기능은 오프가 되어 있습니다.
system
  리모트 머신으로 가동하고 있는 OS 의 타입을 표시합니다.
tenex TENEX 머신과 통신하기 위해서 필요한 파일 전송 모드를 설정합니다.
trace 패킷 트레이스를 하는지 어떤지를 바꿉니다.
type [type-name]
  파일 전송의 type (을)를 type-name (으)로 변경합니다. 인수가 지정되지 않는 경우에는 현재의 파일 전송 타입을 표시합니다. 디폴트 타입은 네트워크 ASCII 입니다.
umask [newmask]
  리모트 서버의 디폴트의 umask 치를 newmask 그리고 지정한 값으로 변경합니다. newmask 하지만 지정되어 있지 않은 경우는 현재의 umask 치를 표시합니다.
user user-name [password [account]] 유저를 리모트 FTP 서버에 인식시킵니다. password 하지만 지정되어 있지 않아, FTP 서버가 필요로 하는 경우는 (로컬 에코를 오프로 하고 나서) ftp 하지만 유저에게 문의합니다. account 하지만 지정되어 있지 않아, FTP 서버가 필요로 하는 경우에는, ftp 하지만 유저에게 문의합니다. 리모트 서버가 로그인시에 어카운트를 필요로 하지 않는데 account 필드가 지정되었을 경우에는, 로그인 처리의 완료 후에 account 명령이 리모트 서버에게 건네집니다. 「자동 로그인」을 무효로 한 상태로 ftp 하지만 불려 가지 않는 이상 이 처리는 FTP 서버에 최초로 연결되었을 때에 자동적으로 행해집니다.
verbose
  요설 모드의 변환을 합니다. 요설 모드때에는 FTP 서버로부터의 모든 응답이 표시됩니다. 한층 더 이 모드가 온때로는, 파일 전송이 종료했을 때에 전송 효율에 관한 통계가 보고됩니다. 디폴트에서는 온이 되어 있습니다.
? [command]
  help 명령와 같습니다.

스페이스를 포함한 명령의 인수는,`"'마크로 괄은 주세요.

설정을 바꾸는 명령에서는, 설정을 지정하기 위해서 명시적으로 on 인가 off (을)를 인수로서 지정할 수 있습니다.

ftp 하지만 전송중에 SIGINFO ( stty(1) 의 인수 "status" (을)를 참조) 시그널을 받으면(자), 그 시점에서의 전송 레이트의 통계 정보가 종료시의 표준적인 포맷과 같은 형식에서 표준 에러 출력에 써내집니다.

파일의 자동 취득

표준적인 명령에 가세해, 이 버젼의 ftp (은)는 자동 취득의 기능을 서포트합니다. 단지 호스트명/파일의 리스트를 명령행으로 건네주면(자) 자동 취득이 유효하게 됩니다.

자동 취득의 지정에서는 이하의 형식을 인식합니다:
host:/file
  "고전적인" ftp 의 형식
ftp://[user:password@]host[:port]/file
  ftp URL 형식에서, ftp_proxy 하지만 정의되어 있지 않으면 ftp 프로토콜로 취득합니다. 그렇지 않으면 ftp_proxy 그리고 지정된 프록시를 경유한 http 를 사용해 전송 합니다. user:password@ 하지만 지정되어 있어 ftp_proxy 하지만 정의되어 있지 않은 경우는, 패스워드에 password (을)를 사용해 user 그리고 로그인합니다.
http://host[:port]/file
  HTTP URL 형식, http 프로토콜로 취득합니다. http_proxy 하지만 정의되고 있는 경우는, 그 내용이 HTTP 프록시 서버의 URL 로서 사용됩니다.

고전적인 형식 또는 ftp URL 형식에서 마지막에 '/' (이)가 있는 경우는, ftp (은)는 사이트에 접속해 주어진 패스의 디렉토리에 cd 해, 이후의 입력을 받아들이기 위해서(때문에) 대화 모드에 들어갑니다.

자동 취득의 대상이 복수 지정되어 있어, 연속하고 있는 것이 같은 호스트를 참조하고 있을 때는, 접속의 확립과 절단에 의한 오버헤드를 피하기 위해서(때문에) 복수의 전송에 걸쳐서 접속이 유지됩니다.

파일명의 전개가 온으로 file 하지만 전개의 대상이 되는 캐릭터를 포함하고 있다면 ( glob 참조) mget file (와)과 같은 일을 실시합니다.

file 의 디렉토리 부분이 전개의 대상이 되는 캐릭터를 포함하지 않으면, 파일은 file (으)로부터 basename(1) 그리고 얻을 수 있는 이름으로 현재의 디렉토리에 놓여집니다. 그렇지 않으면 리모트의 이름을 로컬에서의 이름으로서 사용합니다.

파일 전송의 중지

파일 전송을 중단하기 위해서는, 단말의 인터럽트 키 (통상은 Ctrl-C)를 타건 해 주세요. 데이터 송신은 즉시 정지합니다. 데이터 수신은, ftp 프로토콜의 ABOR 명령을 리모트 서버에 보내는 것으로 서버로부터의 데이터 송신이 멈춥니다. 그리고 그 이후의 수신 데이터는 버려집니다. 이것을 하는 속도는, 리모트 서버가 ABOR 명령을 서포트하는 방식으로 의존합니다. 리모트 서버가 ABOR 명령을 서포트하고 있지 않을 때로는, 리모트 서버가 요구한 파일을 보내 끝날 때까지 ‘ftp>’ 그렇다고 하는 prompt는 나타나지 않습니다.

단말로부터의 세치기 키 입력은, ftp 하지만 무엇인가 로컬의 처리를 벌써 완료하고 있어 리모트 서버로부터의 응답을 기다리고 있을 때에는 무시됩니다. 이 모드에서의 긴 지연은 위에서도 말한 것처럼 ABOR 처리의 결과에 밤의 것인가, ftp 의 프로토콜 위반을 포함한 리모트 서버에 의한다 예기치 못한 동작의 어딘가에 밤의 것입니다. 만약 리모트 서버의 예기치 못한 동작의 결과에 의한 지연이다면, 로컬의 ftp 프로그램은 수동으로 종료 (kill) 하지 않으면 안됩니다.

파일명의 규칙

ftp 명령의 인수로서 지정된 파일명은, 이하의 규칙으로 처리됩니다.
  1. 파일명으로서 '-' 하지만 지정되었을 경우, 입력 파일명의 경우에는 표준 입력 stdin 하지만, 출력 파일명의 경우에는 표준 출력 stdout 하지만 사용됩니다.
  2. 파일명의 선두의 캐릭터가 '|' 의 경우에는, 그 후로 지정된 캐릭터 라인은 모두 쉘 명령라고 해석됩니다. ftp (은)는 주어진 인수를 붙여 popen(3) (을)를 이용해 쉘을 호출해, 표준 입력으로부터 (표준 출력에) 읽기 (기입). 쉘 명령에 스페이스가 포함되어 있을 때에는 인수는 인용부호로 둘러싸이지 않으면 안됩니다. (예: “" ls -lt"” ) 특히 유용한 예로서는 “dir |more” 가 있습니다.
  3. 상기의 체크에 걸리지 않고, "globbing" 하지만 허가되고 있는 경우, 로컬 파일명은 csh(1) [영어] 의 파일명 전개 규칙에 따라 전개됩니다. (자세한 것은 glob 명령을 참조) 다만, ftp 의 명령이 1 개의 파일명 밖에 필요로 하지 않는 경우 (예를 들면 put )(은)는, 파일명이 전개된 후의 최초의 파일명만이 사용됩니다.
  4. mget 명령와 get 명령에 대해 로컬 파일명이 지정되지 않는 경우, 로컬 파일명은 리모트 파일명과 동일하게 됩니다. 다만, 이러한 파일명은 case, ntrans, nmap 의 설정에 의해 바뀌는 일도 있습니다. 결과적으로 얻을 수 있던 파일명은, runique 하지만 설정되어 있으면 한층 더 바뀔지도 모릅니다.
  5. mput 명령와 put 명령에 대해 리모트 파일명이 지정되지 않는 경우, 리모트 파일명은 로컬 파일명과 동일하게 됩니다. 다만, 이러한 파일명은 ntrans, nmap 의 설정에 의해 바뀌는 일도 있습니다. 결과적으로 얻을 수 있던 파일명은, sunique 하지만 설정되어 있으면 리모트 서버에 의해 한층 더 바꿀 수 있을지도 모릅니다.

파일 전송 파라미터

FTP의 사양에는 파일 전송시에 영향을 미치는 많은 파라미터가 있습니다. type (은)는,“ascii”, “image” (binary), “ebcdic”, “local byte size” ( PDP-10 PDP-20 그리고 잘 사용됩니다)가 지정 가능합니다. ftp (은)는, ascii 와 image 의 타입을 지정 가능한데 더해, tenex 모드의 전송을 지정하는 것으로써 로컬 바이트 사이즈 8 을 지정하는 것이 가능합니다.

ftp 그럼, 다른 mode, form, struct 의 파라미터에서는 기본값만이 사용 가능합니다.

.netrc 파일

.netrc 파일은, 자동 로그인 처리에 대한 로그인 및 초기설정 정보를 기술합니다. .netrc 파일은, 유저의 홈 디렉토리에 둡니다. .netrc 그럼 이하의 예약어(reserved word)가 해석됩니다. 이것들은 스페이스, 탭 그리고 new-line 에 의해 분할됩니다.
machine name
  리모트 머신명 name (을)를 정의합니다. 자동 로그인 처리는 .netrc 파일중에 machine 토큰이 있는지 어떤지 찾아, 그 엔트리가 ftp 의 명령행 혹은 open 명령의 인수와 일치하는지 어떤지 체크합니다. 일치하는 엔트리가 있었을 경우는 후에 계속된다 .netrc 토큰이 처리되어 그 처리는 파일 최후미에 도착할까 다른 machine 토큰 또는 default 토큰을 당할 때까지 계속됩니다.
default 여러가지 이름과 일치하는 와일드 카드적인 기능이 있는 것을 제외하면 machine name (와)과 같습니다. default 토큰은, .netrc 파일중에 1 엔트리만이 용서되어 게다가 다른 모든 machine 토큰보다 뒤가 아니면 안됩니다. 통상은

    default login anonymous password user@site

(와)과 같이 사용됩니다. 본엔트리에 의해 .netrc (으)로 지정이 없는 ftp 사이트에 자동으로 anonymous 로그인을 시도하게 됩니다. -n 플래그를 부가해 ftp 를 기동하는 것으로 .netrc 파일을 무시할 수가 있습니다.

login name
  리모트 머신에 있어서의 로그인명을 지정합니다. 본토큰이 주어지고 있는 경우, 자동 로그인 처리는 name (을)를 로그인명으로서 로그인하려고 합니다.
password string
  패스워드를 지정합니다. 본토큰이 지정되어 있는 경우로 리모트 서버가 로그인 처리중에 패스워드를 요구하는 경우는, 자동 로그인 처리는 지정한 캐릭터 라인을 보냅니다. .netrc 파일에 대해, anonymous 이외의 유저 엔트리에 대해 본토큰이 등록되어 있어 게다가 .netrc 하지만 유저 이외로부터 읽을 수 있는 속성인 경우에는 ftp (은)는 자동 로그인 처리를 중단합니다.
account string
  추가의 어카운트 패스워드를 등록합니다. 이 토큰이 있으면(자), 만약 추가의 어카운트 패스워드를 리모트 호스트가 필요로 할 때에 자동 로그인 프로세스가 지정된 캐릭터 라인을 줍니다. 그렇지 않은 경우에는, 자동 로그인 프로세스는 ACCT 명령을 줍니다.
macdef name
  매크로를 정의합니다. 이 토큰의 기능은 ftp macdef 명령의 기능을 닮아 있습니다. 매크로는 지정된 이름을 이용해 정의됩니다. 그 내용은 .netrc 의 다음의 행으로부터 시작되어, 공행 (개행 캐릭터의 연속)이 나타날 때까지 계속됩니다. init 그렇다고 하는 매크로가 정의되고 있다면, 자동 로그인 처리 중(안)에서의 마지막 단계에서 자동적으로 실행됩니다.

명령행의 편집 기능

ftpeditline(3) 프로그램 라이브러리를 사용한 대화적인 명령행의 편집을 서포트합니다. 이것은 edit 명령에 의해 유효하게 되어, 그리고 입력이 tty 로부터의 경우는 디폴트로 유효하게 되어 있습니다. 커서 키로 이전의 행을 호출해 편집할 수 있습니다. 그리고 그 밖에도 GNU Emacs 스타일의 편집용의 키를 사용할 수 있습니다.

editline(3) 프로그램 라이브러리는 .editrc 파일로 설정할 수 있습니다 - 보다 자세하게는 editrc(5) (을)를 참조해 주세요.

ftp 에는, 문맥에 의존한 명령와 파일명의 보완 (리모트 파일의 보완을 포함한다) 기능을 제공하기 위한 추가의 키 할당이 준비되어 있습니다. 이것을 사용하기 위해서(때문에)는 editline(3) ftp-complete 명령에 키를 할당해 주세요. 이것은 디폴트로 TAB 키에 할당할 수 있고 있습니다.

환경 변수

ftp (은)는, 이하의 환경 변수를 사용합니다.
FTP_PASSIVE_MODE
  이 변수를 'NO' 이외로 설정하면(자), 패시브 모드의 FTP 를 디폴트로 사용합니다.
FTPSERVER gate 하지만 유효한 때에 gate-ftp 서버로서 사용하는 호스트.
FTPSERVERPORT gate 하지만 유효한 때에 gate-ftp 서버에 접속하는데 사용하는 포트. 디폴트는 "ftpgate/tcp" 그리고 getservbyname() (을)를 호출해 돌아가 온 포트.
HOME 정의되고 있으면 .netrc 파일의 디폴트의 두는 곳소가 됩니다.
PAGER page 그리고 파일을 표시할 때에 사용됩니다.
SHELL 디폴트로 기동하는 쉘을 정의합니다.
ftp_proxy FTP URL 리퀘스트를 발행할 때에 사용하는 FTP 프록시의 URL (정의되어 있지 않으면 표준의 ftp 프로토콜을 사용합니다).
http_proxy HTTP URL 리퀘스트를 발행할 때에 사용하는 HTTP 프록시의 URL.

관련 항목

getservbyname(3), editrc(5), services(5), ftpd(8)

pftp(1) (와)과 gate-ftp(1) 명령은 ftp 에 링크 되고 있습니다.

역사

ftp 명령은 BSD 4.2 (으)로부터 실장되었습니다.

명령행의 편집, 문맥에 의존한 커멘드와 파일의 보완, 진행 상황을 나타내는 막대 그래프, 파일의 자동적인 취득, ftp 와 http 형식의 URL, 갱신 시각의 보존이라고 하는 각종의 기능은 NetBSD 그리고 Luke Mewburn 에 의해, Jason Thorpe 의 어시스턴트를 얻어 실장되었습니다.

IPv6 서포트는 WIDE/KAME 프로젝트가 추가했습니다.

버그

많은 명령의 올바른 동작은, 리모트 서버의 적절한 동작에 의존합니다.

BSD 4.2 의 ascii 모드에서의 전송시의 복귀 캐릭터의 취급의 에러는 정정되고 있습니다. 이 정정의 결과로서, BSD 4.2 의 서버와의 사이에 바이노리필드를 ascii 타입을 사용해 전송 했을 때에 부정 전송을 일으키는 것이 있습니다. 이 문제를 회피하기 위해서는 바이너리 모드를 이용해 파일 전송을 해 주세요.

ftp_proxy 등의 프록시 기능은, IPv6 접속에서는 동작하지 않을지도 모릅니다.


FTP (1) January 27, 2000

tail head cat sleep
QR code linking to this page


Ben Bullock이 유닉스 매뉴얼 페이지에서 서비스에 대한 의견을 주시기 바랍니다. Privacy policy.

Never write it in C if you can do it in `awk';
Never do it in `awk' if `sed' can handle it;
Never use `sed' when `tr' can do the job;
Never invoke `tr' when `cat' is sufficient;
Avoid using `cat' whenever possible.
— Taylor's Laws of Programming