Руководства по командной строке

Man » Онлайн-справочник по команде ftp — подробная онлайн-документация для справочной страницы ftp

🌍
tnftp — программа для передачи файлов по сети Интернет

СИНТАКСИС

tnftp [-46AadefginpRtVv?] [-N netrc] [-o output] [-P port] [-q quittime] [-r retry] [-s srcaddr]
[-T dir,max[,inc]] [-x xfersize] [[user@]host [port]] [[user@]host:[path][/]]
[file:///path] [ftp://[user[:password]@]host[:port]/path[/][;type=type]]
[http://[user[:password]@]host[:port]/path] [https://[user[:password]@]host[:port]/path]
...
tnftp -u url file ...

ОПИСАНИЕ

tnftp — это пользовательский интерфейс для стандартного протокола передачи файлов в Интернете. Программа позволяет пользователю передавать файлы между локальной и удаленной сетевыми системами.

Последние пять аргументов используются для получения файла с использованием протоколов FTP или HTTP, или путем прямого копирования, в текущий каталог. Это идеально подходит для скриптов. Подробности см. в разделе «АВТОМАТИЧЕСКОЕ ПОЛУЧЕНИЕ ФАЙЛОВ» ниже.

Параметры могут быть указаны в командной строке или в интерпретаторе команд.

-4 Указывает tnftp использовать только IPv4-адреса.

-6 Указывает tnftp использовать только IPv6-адреса.

-A Принудительно использует активный режим FTP. По умолчанию tnftp пытается использовать пассивный режим FTP и переключается на активный режим, если сервер не поддерживает пассивный режим. Этот параметр заставляет tnftp всегда использовать активное соединение. Он полезен только для подключения к очень старым серверам, которые не реализуют пассивный режим должным образом.

-a Заставляет tnftp обходить обычную процедуру входа в систему и использовать анонимный вход.

-d Включает отладку.

-e Отключает редактирование командной строки. Это полезно для режима Emacs ange-ftp.

-f Принудительно перезагружает кэш для передач, проходящих через FTP- или HTTP-прокси.

-g Отключает подстановку шаблонов имен файлов.

-i Отключает интерактивные подсказки во время множественной передачи файлов.

-N netrc Использует netrc вместо ~/.netrc. Подробности см. в разделе «ФАЙЛ .netrc» ниже.

-n Предотвращает попытки tnftp выполнить «автоматический вход» при первоначальном подключении для неавтоматических передач. Если автоматический вход включен, tnftp проверяет файл .netrc (см. ниже) в домашнем каталоге пользователя на наличие записи, описывающей учетную запись на удаленной машине. Если запись отсутствует, tnftp запрашивает имя пользователя для удаленной машины (по умолчанию используется идентификатор пользователя в локальной машине) и, при необходимости, запрашивает пароль и учетную запись для входа. Чтобы отменить автоматический вход для автоматических передач, укажите имя пользователя (и, при необходимости, пароль) соответствующим образом.

-o output При автоматическом получении файлов сохраняет содержимое в выходном файле. output анализируется в соответствии с разделом «КОНВЕНЦИИ ИМЕНОВАНИЯ ФАЙЛОВ» ниже. Если output не равен «-» и не начинается с «|», то только первый указанный файл будет извлечен в output; все остальные файлы будут извлечены в файл с именем, основанным на имени удаленного файла.

-P port     Устанавливает номер порта в значение port.

-p          Включает режим пассивной работы для использования за брандмауэром, фильтрующим соединения.
Этот параметр устарел, так как tnftp теперь по умолчанию пытается использовать пассивный режим, переключаясь на активный режим, если сервер не поддерживает пассивные соединения.

-q quittime

Завершает работу, если соединение неактивно в течение quittime секунд.

-R          Перезапускает все не-проксированные автоматические загрузки.

-r wait     Повторяет попытку соединения в случае сбоя, делая паузу на wait секунд.

-s srcaddr  Использует srcaddr в качестве локального IP-адреса для всех соединений.

-t          Включает трассировку пакетов.

-T direction,maximum[,increment]

Устанавливает максимальную скорость передачи для направления direction в maximum байт/секунду и, при необходимости, приращение increment байт/секунду. Подробную информацию см. в разделе rate.

-u url file ...

Загружает файлы из командной строки по адресу url, где url является одним из типов URL-адресов ‘ftp://’, поддерживаемых auto-fetch (с необязательным целевым именем файла для загрузки одного файла), а file — один или несколько локальных файлов для загрузки.

-V          Отключает подробный вывод и индикатор выполнения, отменяя действие по умолчанию (включено при выводе в терминал).

-v          Включает подробный вывод и индикатор выполнения. Это значение по умолчанию, если вывод осуществляется в терминал (и в случае индикатора выполнения tnftp является процессом, выполняющимся на переднем плане). Принудительно заставляет tnftp отображать все ответы с удаленного сервера, а также сообщать о статистике передачи данных.

-x xfersize

Устанавливает размер сокетных буферов отправки и приема в значение xfersize. Подробную информацию см. в разделе xferbuf.

-?          Отображает справку в стандартном выводе и завершает работу.

Клиентский хост, с которым tnftp должен обмениваться данными, можно указать в командной строке. Если это сделано, tnftp немедленно попытается установить соединение с FTP-сервером на этом хосте; в противном случае tnftp перейдет в режим интерпретатора команд и будет ожидать инструкции от пользователя. Когда tnftp ожидает команды от пользователя, пользователю отображается запрос «ftp>». tnftp распознает следующие команды:

! [command [args]]

Вызывает интерактивную оболочку на локальной машине. Если есть аргументы, первый из них рассматривается как команда для непосредственного выполнения, а остальные аргументы являются ее аргументами.

$ macro-name [args]

Выполняет макрос macro-name, который был определен с помощью команды macdef. Аргументы передаются в макрос без раскрытия.

account [passwd]

Предоставляет дополнительный пароль, необходимый удаленной системе для доступа к ресурсам после успешного завершения входа в систему. Если аргумент не указан, пользователю предлагается ввести пароль учетной записи в неэхо-режиме.

append local-file [remote-file]

Добавляет локальный файл в файл на удаленной машине. Если remote-file не указан, имя локального файла используется для присвоения имени удаленному файлу после изменения с помощью любых параметров ntrans или nmap. Передача файлов использует текущие настройки для type, format, mode и structure.


ascii       Устанавливает тип передачи файлов в сетевой ASCII. Это тип по умолчанию.

bell        Настраивает воспроизведение звукового сигнала после завершения каждой команды передачи файла.

binary      Устанавливает тип передачи файлов для поддержки передачи двоичных данных.

bye         Завершает FTP-сеанс с удаленным сервером и выходит из tnftp. Конец файла также завершит сеанс и выйдет из программы.

case        Переключает режим отображения имен файлов на удаленном компьютере во время команд get, mget и mput. Когда режим case включен (по умолчанию выключен), имена файлов на удаленном компьютере, состоящие из букв в верхнем регистре, записываются в локальный каталог с преобразованием букв в нижний регистр.

cd remote-directory
Изменяет рабочий каталог на удаленной машине на remote-directory.

cdup        Изменяет рабочий каталог удаленной машины на родительский каталог текущего рабочего каталога удаленной машины.

chmod mode remote-file
Изменяет права доступа к файлу remote-file на удаленной системе на mode.

close       Завершает FTP-сеанс с удаленным сервером и возвращается в интерпретатор команд. Все определенные макросы стираются.

cr          Переключает режим удаления символов возврата каретки во время получения файлов в режиме ascii. Записи обозначаются последовательностью «возврат каретки/перевод строки» во время передачи файлов в режиме ascii. Когда cr включен (по умолчанию), символы возврата каретки удаляются из этой последовательности, чтобы соответствовать разделителю записей Unix, который состоит из одной строки перевода. Записи на не-Unix удаленных системах могут содержать отдельные символы перевода строки; при передаче файлов в режиме ascii эти символы перевода могут быть различимы от разделителя записей только тогда, когда cr выключен.

debug [debug-value]
Переключает режим отладки. Если указано необязательное значение debug-value, оно используется для установки уровня отладки. Когда отладка включена, tnftp выводит каждую команду, отправляемую на удаленную машину, с префиксом «-->».

delete remote-file
Удаляет файл remote-file на удаленной машине.

dir [remote-path [local-file]]
Выводит список содержимого каталога на удаленной машине. Список включает любую зависящую от системы информацию, которую сервер выбирает для включения; например, большинство систем Unix будут генерировать вывод команды «ls -l». Если remote-path не указан, используется текущий рабочий каталог. Если включено интерактивное подтверждение, tnftp предложит пользователю подтвердить, что последний аргумент действительно является целевым локальным файлом для приема вывода dir. Если локальный файл не указан или если local-file — это «-», вывод отправляется в терминал.

disconnect  Синоним для close.

edit        Переключает редактирование командной строки и контекстно-зависимое завершение команд и файлов. Это автоматически включено, если ввод осуществляется из терминала, и отключено в противном случае.

epsv, epsv4, epsv6
Переключает использование расширенных команд EPSV и EPRT для всех IPv4- и IPv6-соединений соответственно. Сначала пытается использовать EPSV/EPRT, затем PASV/PORT. По умолчанию включено. Если расширенная команда завершается с ошибкой, эта опция временно отключается на время текущего подключения или до тех пор, пока epsv, epsv4 или epsv6 не будут выполнены снова.

exit
Синоним для bye.

features
Отображает, какие функции поддерживает удаленный сервер (используя команду FEAT).

fget localfile
Загружает файлы, перечисленные в localfile, в котором каждая строка содержит имя файла.

form format
Устанавливает формат передачи файлов на format. По умолчанию (и единственная поддерживаемая) – «non-print».

ftp host [port]
Синоним для open.

gate [host [port]]
Переключает режим gate-ftp, который использовался для подключения через прокси-серверы TIS FWTK и Gauntlet FTP. Это не будет разрешено, если сервер gate-ftp не установлен (либо явно пользователем, либо из переменной среды FTPSERVER). Если указан хост, режим gate-ftp будет включен, и сервер gate-ftp будет установлен в хост. Если также указан порт, он будет использоваться в качестве порта для подключения к серверу gate-ftp.

get remote-file [local-file]
Загружает remote-file и сохраняет его на локальной машине. Если имя локального файла не указано, ему присваивается то же имя, что и на удаленной машине, с учетом текущих настроек case, ntrans и nmap. При передаче файла используются текущие настройки type, form, mode и structure.

glob
Переключает расширение имен файлов для mdelete, mget, mput и mreget. Если расширение имен файлов отключено с помощью glob, имена файлов передаются буквально и не расширяются. Расширение для mput выполняется так, как в csh(1). Для mdelete, mget и mreget каждое удаленное имя файла расширяется отдельно на удаленной машине, и списки не объединяются. Расширение имени каталога, вероятно, будет отличаться от расширения имени обычного файла: точный результат зависит от внешней операционной системы и FTP-сервера, и его можно предварительно просмотреть, выполнив «mls remote-files -». Обратите внимание: mget, mput и mreget не предназначены для передачи всего дерева каталогов файлов. Это можно сделать, передав [tar]({filename}../../tar)(1) архив поддерева (в двоичном режиме).

hash [size]
Переключает печать хеш-сигналов («#») для каждого переданного блока данных. Размер блока данных по умолчанию составляет 1024 байта. Это можно изменить, указав размер в байтах. Включение хеша отключает отображение прогресса.

help [command]
Выводит информативное сообщение о значении команды. Если аргумент не указан, tnftp выводит список известных команд.

idle [seconds]
Устанавливает таймер неактивности на удаленном сервере на указанное количество секунд. Если seconds не указан, выводится текущий таймер неактивности.

image
Синоним для binary.

lcd [directory]
Изменяет текущий рабочий каталог на локальной машине. Если каталог не указан, используется домашний каталог пользователя.

less file   Синоним для команды page.

lpage local-file
Отображает local-file с помощью программы, указанной в опции set pager.

lpwd        Выводит текущий рабочий каталог на локальной машине.

ls [remote-path [local-file]]
Синоним для команды dir.

macdef macro-name
Определяет макрос. Последующие строки сохраняются как макрос macro-name; пустая строка
(последовательные символы новой строки в файле или символы возврата каретки из терминала) завершает ввод макроса. Существует ограничение в 16 макросов и 4096 символов во
всех определенных макросах. Имена макросов могут состоять максимум из 8 символов. Макросы применимы только к текущей сессии, в которой они определены (или, если определены вне
сессии, к сессии, вызванной следующей командой open), и остаются определенными до тех пор, пока не будет выполнена команда close. Чтобы вызвать макрос, используйте команду $ (см. выше).

Макропроцессор интерпретирует символы '$' и '\\' как специальные символы. Символ '$', за которым следует число (или числа), заменяется соответствующим аргументом в команде вызова макроса. Символ '$', за которым следует символ 'i', сообщает макропроцессору, что выполняемый макрос должен быть выполнен в цикле. При первой итерации '$i' заменяется первым аргументом в команде вызова макроса, при второй итерации – вторым аргументом и так далее. Символ '\\', за которым следует любой символ, заменяется этим символом. Используйте символ '\\', чтобы предотвратить специальную обработку символа '$'.

mdelete [remote-files]
Удаляет remote-files на удаленной машине.

mdir remote-files local-file
Аналогично dir, но можно указать несколько удаленных файлов. Если включено интерактивное подтверждение, tnftp запросит у пользователя подтверждение того, что последний аргумент действительно является целевым локальным файлом для получения вывода mdir.

mget remote-files
Разворачивает remote-files на удаленной машине и выполняет команду get для каждого имени файла. См. glob для получения подробной информации о развертывании имен файлов. Полученные имена файлов затем обрабатываются в соответствии с настройками case, ntrans и nmap. Файлы передаются в локальный рабочий каталог, который можно изменить с помощью команды lcd directory; новые локальные каталоги можно создать с помощью команды ! mkdir directory.

mkdir directory-name
Создает каталог на удаленной машине.

mls remote-files local-file
Аналогично ls, но можно указать несколько удаленных файлов, и local-file должен быть указан. Если включено интерактивное подтверждение, tnftp запросит у пользователя подтверждение того, что последний аргумент действительно является целевым локальным файлом для получения вывода mls.

mlsd [remote-path]
Отображает содержимое remote-path (который должен по умолчанию быть текущим каталогом, если он не указан) в формате, пригодном для машинной обработки, с помощью MLSD. Формат отображения можно изменить с помощью команды 'remopts mlst ...'.

mlst [remote-path]
Отображает сведения о remote-path (который должен по умолчанию быть текущим каталогом, если он не указан) в формате, пригодном для машинной обработки, с помощью MLST. Формат отображения можно изменить с помощью команды 'remopts mlst ...'.

mode mode-name

Устанавливает режим передачи файлов в режим mode-name. Режим по умолчанию (и единственный поддерживаемый) — ‘stream’.

modtime remote-file

Отображает время последнего изменения файла на удаленной машине в формате RFC 2822.

more file

Синоним команды page.

mput local-files

Разворачивает подстановочные знаки в списке локальных файлов, указанных в качестве аргументов, и выполняет команду put для каждого файла в полученном списке. Подробности о расширении имен файлов см. в разделе glob. Полученные имена файлов затем обрабатываются в соответствии с настройками ntrans и nmap.

mreget remote-files

Аналогично mget, но выполняет reget вместо get.

msend local-files

Синоним команды mput.

newer remote-file [local-file]

Получает файл только в том случае, если время изменения удаленного файла новее, чем файл в текущей системе. Если файла нет в текущей системе, удаленный файл считается более новым. В противном случае эта команда идентична команде get.

nlist [remote-path [local-file]]

Синоним команды ls.

nmap [inpattern outpattern]

Устанавливает или отключает механизм сопоставления имен файлов. Если аргументы не указаны, механизм сопоставления имен файлов отключается. Если аргументы указаны, имена удаленных файлов сопоставляются во время команд mput и команд put, выпущенных без указания целевого имени удаленного файла. Если аргументы указаны, локальные имена файлов сопоставляются во время команд mget и команд get, выпущенных без указания целевого локального имени файла. Эта команда полезна при подключении к не-Unix удаленному компьютеру с разными соглашениями или практиками именования файлов. Сопоставление следует шаблону, заданному inpattern и outpattern.

inpattern — это шаблон для входящих имен файлов (которые, возможно, уже были обработаны в соответствии с настройками ntrans и case). Переменное шаблонирование достигается путем включения последовательностей «$1», «$2» и т. д. до «$9» в inpattern. Используйте «\», чтобы предотвратить специальную обработку символа «$». Все остальные символы рассматриваются буквально и используются для определения значений переменных 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» и «myfile.data.old», «myfile.file» для входного имени файла «myfile» и «myfile.myfile» для входного имени файла «.myfile». В outpattern можно включать пробелы, например:

nmap $1 sed s/ *$// > $1

Используйте символ ‘\’ для предотвращения специальной обработки символов ‘$’, ‘[’, ‘]’ и ‘,’.

ntrans [inchars [outchars]]

Установите или сбросьте механизм преобразования символов имени файла. Если аргументы не указаны, механизм преобразования символов имени файла сбрасывается. Если указаны аргументы, символы в удаленных именах файлов преобразуются во время команд mput и put, выданных без указания удаленного целевого имени файла. Если указаны аргументы, символы в локальных именах файлов преобразуются во время команд mget и get, выданных без указания локального целевого имени файла. Эта команда полезна при подключении к не-Unix удаленному компьютеру с разными соглашениями или практиками именования файлов. Символы в имени файла, совпадающие с символом в inchars, заменяются соответствующим символом в outchars. Если позиция символа в inchars длиннее длины outchars, символ удаляется из имени файла.

open host [port]

Установите соединение с указанным FTP-сервером host. Может быть указан необязательный номер порта, в этом случае tnftp попытается связаться с FTP-сервером на этом порту. Если включена опция автоматического входа в систему (по умолчанию), tnftp также попытается автоматически войти в систему на FTP-сервере (см. ниже).

page file Извлеките файл и отобразите его с помощью программы, указанной в опции set pager.

passive [auto]

Переключите пассивный режим (если аргументы не указаны). Если указано auto, действуйте так, как если бы FTPMODE был установлен в ‘auto’. Если пассивный режим включен (по умолчанию), tnftp будет отправлять команду PASV для всех соединений данных вместо команды PORT. Команда PASV запрашивает, чтобы удаленный сервер открыл порт для соединения данных и вернул адрес этого порта. Удаленный сервер прослушивает этот порт, и клиент подключается к нему. При использовании более традиционной команды PORT клиент прослушивает порт и отправляет этот адрес на удаленный сервер, который подключается к нему. Пассивный режим полезен при использовании tnftp через шлюзовой маршрутизатор или хост, который управляет направлением трафика. (Обратите внимание, что, хотя FTP-серверы должны поддерживать команду PASV в соответствии с RFC 1123, некоторые этого не делают.)

pdir [remote-path]

Выполните dir [remote-path] и отобразите результат с помощью программы, указанной в опции set pager.

pls [remote-path]

Выполните ls [remote-path] и отобразите результат с помощью программы, указанной в опции set pager.

pmlsd [remote-path]

Выполните mlsd [remote-path] и отобразите результат с помощью программы, указанной в опции set pager.

preserve Переключите сохранение времени изменения извлекаемых файлов.

progress Переключите отображение индикатора выполнения передачи. Индикатор выполнения будет отключен для передачи, в которой local-file имеет значение ‘-’ или для команды, начинающейся с ‘|’. См. раздел «СОВЕШЕНИЯ ОБ ИМЕНОВАНИИ ФАЙЛОВ» для получения дополнительной информации. Включение индикатора выполнения отключает отображение хеша.

prompt      Переключатель для включения/выключения интерактивного режима подсказок. Интерактивный режим подсказок используется во время множественных передач файлов, чтобы позволить пользователю выборочно получать или сохранять файлы. Если подсказки отключены (по умолчанию включены), любые команды `mget` или `mput` будут передавать все файлы, а любая команда `mdelete` будет удалять все файлы.

Когда подсказки включены, доступны следующие команды в режиме подсказок:

a   Ответить «да» на текущий файл и автоматически отвечать «да» на все оставшиеся файлы для текущей команды.

n   Ответить «нет» и не передавать файл.

p   Ответить «да» на текущий файл и отключить режим подсказок (как если бы была введена команда `prompt off`).

q   Завершить текущую операцию.

y   Ответить «да» и передать файл.

?   Отобразить сообщение справки.

Любой другой ответ будет означать ответ «да» на текущий файл.

proxy ftp-command

Выполнить FTP-команду на вторительном соединении управления. Эта команда позволяет одновременно подключаться к двум удаленным FTP-серверам для передачи файлов между ними. Первая команда proxy должна быть open, чтобы установить вторичное соединение управления. Введите команду proxy ?, чтобы увидеть другие FTP-команды, которые можно выполнять во вторичном соединении. Следующие команды ведут себя по-разному, когда перед ними стоит proxy: open не будет определять новые макросы во время автоматической аутентификации, close не будет удалять существующие определения макросов, get и mget передают файлы с хоста в основном соединении управления на хост во вторичном соединении управления, а put, mput и append передают файлы с хоста во вторичном соединении управления на хост в основном соединении управления. Передача файлов между третьими сторонами зависит от поддержки протокола FTP PASV сервером во вторичном соединении управления.

put local-file [remote-file]

Сохранить локальный файл на удаленной машине. Если remote-file не указан, имя локального файла используется после обработки в соответствии с любыми настройками ntrans или nmap при именовании удаленного файла. Передача файлов использует текущие настройки для типа, формата, режима и структуры.

pwd         Вывести имя текущего рабочего каталога на удаленной машине.

quit        Синоним для `bye`.

quote [arg ...]

Указанные аргументы отправляются в точности на удаленный FTP-сервер.

rate direction [maximum [increment]]

Ограничить максимальную скорость передачи до maximum байт/сек. Если maximum равно 0, отключить ограничение скорости.

`direction` может быть одним из:
`all`  Оба направления.
`get`  Входящие передачи.
`put`  Исходящие передачи.

`maximum` можно изменять на лету, увеличивая его на `increment` байт (по умолчанию: 1024) каждый раз, когда получен определенный сигнал:

`SIGUSR1`  Увеличить `maximum` на `increment` байт.

SIGUSR2 Уменьшить максимальное значение на величину приращения байтов. Результат должен быть положительным числом.

Если максимальное значение не указано, отображаются текущие значения скорости.

Примечание: скорость пока не реализована для передач в текстовом режиме.

rcvbuf size

Установить размер буфера приема сокета в size.

recv remote-file [local-file]

Синоним для get.

reget remote-file [local-file]

reget действует как get, но если local-file существует и меньше, чем remote-file, local-file предполагается как частично переданная копия remote-file, и передача продолжается с предполагаемой точки сбоя. Эта команда полезна при передаче очень больших файлов по сетям, которые склонны к разрывам соединений.

remopts command [command-options]

Установить параметры на удаленном FTP-сервере для команды command с помощью command-options (отсутствие которых обрабатывается для каждой команды индивидуально). Удаленные FTP-команды, которые поддерживают параметры, включают: MLST (используется для MLSD и MLST).

rename [from [to]]

Переименовать файл from на удаленной машине в файл to.

reset Очистить очередь ответов. Эта команда повторно синхронизирует последовательность команд/ответов с удаленным FTP-сервером. Повторная синхронизация может потребоваться после нарушения протокола FTP удаленным сервером.

restart marker

Возобновить следующую команду get или put с указанного маркера. В системах Unix маркер обычно представляет собой смещение в байтах в файле.

rhelp [command-name]

Запросить справку с удаленного FTP-сервера. Если указано command-name, оно также передается на сервер.

rmdir directory-name

Удалить каталог на удаленной машине.

rstatus [remote-file]

Без аргументов отобразить состояние удаленной машины. Если указан remote-file, отобразить состояние remote-file на удаленной машине.

runique Переключить режим хранения файлов в локальной системе с уникальными именами файлов. Если файл уже существует с именем, равным целевому локальному имени файла для команды get или mget, к имени добавляется «.1». Если полученное имя совпадает с другим существующим файлом, к исходному имени добавляется «.2». Если этот процесс продолжается до «.99», печатается сообщение об ошибке, и передача не выполняется. Сгенерированное уникальное имя файла будет сообщено. Обратите внимание, что runique не будет влиять на локальные файлы, созданные из командной строки оболочки (см. ниже). Значение по умолчанию — выкл.

send local-file [remote-file]

Синоним для put.

sendport Переключить использование команд PORT. По умолчанию tnftp попытается использовать команду PORT при установке соединения для каждой передачи данных. Использование команд PORT может предотвратить задержки при выполнении нескольких передач файлов. Если команда PORT не удается, tnftp использует порт данных по умолчанию. При отключении использования команд PORT попытки использовать команды PORT для каждой передачи данных не предпринимаются. Это полезно для определенных реализаций FTP, которые игнорируют команды PORT, но при этом ошибочно сообщают, что они были приняты.

set [option value]

Устанавливает значение параметра в указанное значение. Если параметр и значение не указаны, отображаются все параметры и их значения. В настоящее время поддерживаются следующие параметры:

anonpass     По умолчанию $FTPANONPASS.

ftp_proxy    По умолчанию $ftp_proxy.

http_proxy   По умолчанию $http_proxy.

https_proxy  По умолчанию $https_proxy.

no_proxy     По умолчанию $no_proxy.

pager        По умолчанию $PAGER.

prompt       По умолчанию $FTPPROMPT.

rprompt      По умолчанию $FTPRPROMPT.

sslnoverify  По умолчанию $FTPSSLNOVERIFY.

site [arg ...]

Указанные аргументы отправляются на удаленный FTP-сервер в виде команды SITE.

size remote-file

Возвращает размер файла remote-file на удаленной машине.

sndbuf size

Устанавливает размер буфера отправки сокета на значение size.

status      Отображает текущий статус tnftp.

struct struct-name

Устанавливает структуру передачи файлов на struct-name. По умолчанию (и единственная поддерживаемая) структура — ‘file’.

sunique     Переключает сохранение файлов на удаленной машине под уникальными именами файлов. Удаленный FTP-сервер должен поддерживать протокол FTP STOU для успешного выполнения. Удаленный сервер сообщит уникальное имя. Значение по умолчанию — выключено.

system      Отображает тип операционной системы, работающей на удаленной машине.

tenex       Устанавливает тип передачи файлов, необходимый для связи с машинами TENEX.

throttle    Синоним для rate.

trace       Переключает трассировку пакетов.

type [type-name]

Устанавливает тип передачи файлов на type-name. Если тип не указан, отображается текущий тип. Тип по умолчанию — сетевой ASCII.

umask [newmask]

Устанавливает значение umask по умолчанию на удаленном сервере на newmask. Если newmask не указан, отображается текущее значение umask.

unset option

Удаляет параметр. См. set для получения дополнительной информации.

usage command

Выводит сообщение об использовании для команды.

user user-name [password [account]]

Идентифицирует пользователя на удаленном FTP-сервере. Если пароль не указан, и сервер требует его, tnftp запрашивает пароль у пользователя (после отключения локального эха). Если поле account не указано, и FTP-сервер требует его, пользователю будет предложено ввести его. Если поле account указано, команда account будет отправлена на удаленный сервер после завершения последовательности входа в систему, если удаленный сервер не требовал ее для входа в систему. Если tnftp не запущен с отключенной функцией автоматического входа в систему, этот процесс выполняется автоматически при первоначальном подключении к FTP-серверу.

verbose     Переключает подробный режим. В подробном режиме все ответы с FTP-сервера отображаются пользователю. Кроме того, если включен подробный режим, после завершения передачи файла отображается статистика об эффективности передачи. По умолчанию подробный режим включен.

xferbuf size

Устанавливает размер буферов отправки и приема сокета на значение size.

? [command]

Синоним для help.

Аргументы команд, содержащие пробелы, можно заключать в двойные кавычки "“.


Команды, которые переключают настройки, могут принимать явный аргумент «on» или «off», чтобы принудительно установить настройку соответствующим образом.

Команды, которые принимают в качестве аргумента размер в байтах (например, hash, rate и xferbuf), поддерживают необязательный суффикс в аргументе, который изменяет интерпретацию аргумента. Поддерживаемые суффиксы: b Не вносит изменений. (Необязательно) k Кило; умножает аргумент на 1024 m Мега; умножает аргумент на 1048576 g Гига; умножает аргумент на 1073741824

Если tnftp получает сигнал SIGINFO (см. аргумент status команды stty(1)) или SIGQUIT во время выполнения передачи, текущая статистика скорости передачи будет записана в стандартный вывод ошибок в том же формате, что и стандартное сообщение о завершении.

АВТОМАТИЧЕСКАЯ ЗАГРУЗКА ФАЙЛОВ

В дополнение к стандартным командам, эта версия tnftp поддерживает функцию автоматической загрузки. Чтобы включить автоматическую загрузку, просто передайте список имен хостов/файлов в командной строке.

Следующие форматы являются допустимым синтаксисом для элемента автоматической загрузки:

[user@]host:[path][/]
«Классический» формат FTP.

Если путь содержит символ подстановки и включена функция подстановки (см. glob), то выполняется эквивалент команды mget path.

Если компонент директории пути не содержит символов подстановки, он сохраняется локально под именем basename (см. basename(1)) пути в текущем каталоге. В противном случае полное удаленное имя используется в качестве локального имени относительно локального корневого каталога.

ftp://[user[:password]@]host[:port]/path[/][;type=type]

URL FTP, полученный с использованием протокола FTP, если не определена переменная ftp_proxy. В противном случае передача URL выполняется с использованием HTTP через прокси, определенный в set ftp_proxy. Если переменная ftp_proxy не определена, а указан пользователь, вход в систему осуществляется как пользователь. В этом случае используйте пароль, если он указан, в противном случае запросите у пользователя.

Если указан суффикс «;type=A» или «;type=I», то передача будет выполняться в режиме ascii или binary (соответственно). По умолчанию используется двоичный режим.

Чтобы соответствовать RFC 3986, tnftp интерпретирует часть пути URL «ftp://» для автоматической загрузки следующим образом:

Символ «/» сразу после host[:port] интерпретируется как разделитель перед путем, а не как часть самого пути.

Путь интерпретируется как список компонентов имен, разделенных символом «/». Для всех компонентов, кроме последнего, tnftp выполняет эквивалент команды cd. Для последнего компонента пути tnftp выполняет эквивалент команды get.

Пустые компоненты имен, которые возникают из-за «//» в пути или из-за дополнительного «/» в начале пути, вызовут эквивалент команды cd без указания имени каталога. Это вряд ли будет полезно.

Любые коды «%XX» (согласно RFC 3986) в компонентах пути расшифровываются, где XX представляет собой код символа в шестнадцатеричном формате. Это расшифрование происходит после того, как путь разделен на компоненты, но перед тем, как каждый компонент используется в эквиваленте команд cd или get. Некоторые часто используемые коды: «%2F» (который представляет «/») и «%7E» (который представляет «~»).


Приведенная выше интерпретация имеет следующие последствия:

Путь интерпретируется относительно каталога входа по умолчанию для указанного пользователя или пользователя «anonymous». Если требуется каталог «/», используйте путь, начинающийся с «%2F». Если требуется домашний каталог пользователя (и удаленный сервер поддерживает этот синтаксис), используйте путь, начинающийся с «%7Euser/». Например, чтобы получить файл /etc/motd с «localhost» под именем пользователя «myname» и паролем «mypass», используйте «ftp://myname:mypass@localhost/%2fetc/motd».

Точные команды cd и get можно контролировать путем тщательного выбора, где использовать «/» и где использовать «%2F» (или «%2f»). Например, следующие URL-адреса соответствуют эквивалентам указанных команд:

ftp://host/dir1/dir2/file         cd dir1, cd dir2, get file.

ftp://host/%2Fdir1/dir2/file      cd /dir1, cd dir2, get file.

ftp://host/dir1%2Fdir2/file       cd dir1/dir2, get file.

Вы должны иметь соответствующие права доступа для каждого из промежуточных каталогов, используемых в эквиваленте команды cd.

http://[user[:password]@]host[:port]/path

URL-адрес HTTP, полученный с использованием протокола HTTP. Если определена переменная http_proxy, она используется в качестве URL-адреса HTTP-прокси-сервера. Если для получения файла path требуется аутентификация HTTP, и имя пользователя (и необязательно пароль) указаны в URL-адресе, они используются для первой попытки аутентификации.

https://[user[:password]@]host[:port]/path

URL-адрес HTTPS, полученный с использованием протокола HTTPS. Если определена переменная https_proxy, она используется в качестве URL-адреса HTTPS-прокси-сервера. Если для получения файла path требуется аутентификация HTTPS, и имя пользователя (и необязательно пароль) указаны в URL-адресе, они используются для первой попытки аутентификации. В настоящее время проверка и подтверждение сертификатов не выполняются.

file:///path

Локальный URL-адрес, скопированный из /path на локальном хосте.

about:topic

Отображает информацию о topic; файл для этого автоматически извлекаемого элемента не извлекается. Поддерживаемые значения:

about:ftp      Информация о tnftp.

about:version  Версия tnftp. Полезно указывать при сообщении о проблемах.

Если не указано иное выше, и не указан параметр -o output, файл сохраняется в текущем каталоге под именем basename(1) файла path. Обратите внимание, что если получен перенаправление HTTP, извлечение повторяется с использованием нового целевого URL-адреса, предоставленного сервером, с соответствующим новым путем. Рекомендуется использовать явный параметр -o output, чтобы избежать записи в неожиданные имена файлов.

Если классический формат или формат URL-адреса FTP имеет завершающий символ «/» или пустой компонент пути, то tnftp подключается к сайту и переходит в каталог, указанный в пути, и оставляет пользователя в интерактивном режиме, готовом к дальнейшему вводу. Это не будет работать, если используется переменная ftp_proxy.


Прямые HTTP-передачи используют HTTP 1.1. Проксированные FTP- и HTTP-передачи используют HTTP 1.0.

Если указан параметр -R, все автоматические повторные загрузки, которые не выполняются через FTP- или HTTP-прокси, будут перезапущены. Для FTP это реализовано путем использования команды reget вместо get. Для HTTP это реализовано путем использования директивы HTTP/1.1 Range: bytes=.

Если требуется аутентификация WWW или прокси-сервера WWW, вам будет предложено ввести имя пользователя и пароль для аутентификации.

При указании IPv6-адресов в URL необходимо заключать адрес в квадратные скобки. Например: ftp://[::1]:21/. Это связано с тем, что двоеточия используются в IPv6-адресах, а также являются разделителями для номера порта.

ПРЕКРАЩЕНИЕ ПЕРЕДАЧИ ФАЙЛА

Для прерывания передачи файла используйте клавишу прерывания терминала (обычно Ctrl-C). Отправка файлов будет немедленно остановлена. Получение файлов будет остановлено путем отправки FTP-команды ABOR на удаленный сервер и отбрасывания любых дальнейших полученных данных. Скорость, с которой это происходит, зависит от поддержки удаленным сервером обработки команды ABOR. Если удаленный сервер не поддерживает команду ABOR, подсказка не появится, пока удаленный сервер не завершит отправку запрошенного файла.

Если последовательность клавиш прерывания терминала используется, когда tnftp ожидает ответа от удаленного сервера для обработки команды ABOR, соединение будет закрыто. Это отличается от традиционного поведения (которое игнорирует клавишу прерывания терминала на этом этапе), но считается более полезным.

ПРАВИЛА ИМЕНОВАНИЯ ФАЙЛОВ

Файлы, указанные в качестве аргументов для команд tnftp, обрабатываются в соответствии со следующими правилами.

Если в качестве имени файла указано `'-'`, то используется стандартный ввод (для чтения) или стандартный вывод (для записи).

Если первый символ имени файла — `'|'`, то остальная часть аргумента интерпретируется как команда оболочки. Затем `tnftp` создает ветвь оболочки, используя `popen(3)` с предоставленным аргументом, и считывает (записывает) данные из стандартного вывода (стандартного ввода). Если команда оболочки содержит пробелы, аргумент должен быть заключен в кавычки; например: `| ls -lt`. Особенно полезным примером этого механизма является: `dir "" | more`.

Если вышеуказанные проверки не прошли и включено использование подстановочных знаков, локальные имена файлов расширяются в соответствии с правилами, используемыми в `csh(1);` см. команду `glob`. Если команда `tnftp` ожидает один локальный файл (например, `put`), используется только первое имя файла, сгенерированное операцией расширения подстановочных знаков.

Для команд `mget` и команд `get` с неуказанными локальными именами файлов локальное имя файла является удаленным именем файла, которое может быть изменено с помощью параметров `case`, `ntrans` или `nmap`. Полученное имя файла затем может быть изменено, если включен параметр `runique`.

Для команд `mput` и команд `put` с неуказанными удаленными именами файлов удаленное имя файла является локальным именем файла, которое может быть изменено с помощью параметров `ntrans` или `nmap`. Полученное имя файла затем может быть изменено на удаленном сервере, если включен параметр `sunique`.

ПАРАМЕТРЫ ПЕРЕДАЧИ ФАЙЛОВ

Спецификация FTP определяет множество параметров, которые могут влиять на передачу файлов. Тип может быть одним из: «ascii», «image» (двоичный), «ebcdic» и «local byte size» (в основном для PDP-10 и PDP-20). tnftp поддерживает типы передачи файлов «ascii» и «image», а также локальный размер байта 8 для передачи в режиме Tenex.

tnftp поддерживает только значения по умолчанию для остальных параметров передачи файлов: mode, form и struct.

ФАЙЛ .netrc

Файл .netrc содержит информацию для входа в систему и инициализации, используемую процессом автоматического входа. Он находится в домашнем каталоге пользователя, если не переопределен с помощью опции -N netrc или указан в переменной окружения NETRC. Распознаются следующие токены; они могут быть разделены пробелами, табуляциями или новыми строками:

machine name

Идентифицирует имя удаленной машины. Процесс автоматического входа в систему выполняет поиск в файле .netrc токена machine, который соответствует удаленной машине, указанной в командной строке tnftp или в аргументе команды open. После обнаружения соответствия последующие токены .netrc обрабатываются до тех пор, пока не будет достигнут конец файла или не будет обнаружен другой токен machine или токен default.

default

Это то же самое, что и machine name, за исключением того, что default соответствует любому имени. Может быть только один токен default, и он должен находиться после всех токенов machine. Обычно это используется следующим образом:

default login anonymous password user@site

Таким образом, пользователю автоматически предоставляется анонимный FTP-доступ к машинам, не указанным в .netrc. Это можно отключить, используя флаг -n для отключения автоматического входа в систему.

login name

Идентифицирует пользователя на удаленной машине. Если этот токен присутствует, процесс автоматического входа в систему инициирует вход в систему с использованием указанного имени.

password string

Предоставляет пароль. Если этот токен присутствует, процесс автоматического входа в систему предоставляет указанную строку, если удаленный сервер требует пароль в рамках процесса входа в систему. Обратите внимание, что если этот токен присутствует в файле .netrc для любого пользователя, кроме анонимного, tnftp прервет процесс автоматического входа в систему, если файл .netrc доступен для чтения любому, кроме этого пользователя.

account string

Предоставляет дополнительный пароль учетной записи. Если этот токен присутствует, процесс автоматического входа в систему предоставляет указанную строку, если удаленный сервер требует дополнительный пароль учетной записи, или процесс автоматического входа в систему инициирует команду ACCT, если это не требуется.

macdef name

Определяет макрос. Этот токен работает так же, как команда macdef в tnftp. Макрос определяется с указанным именем; его содержимое начинается со следующей строки .netrc и продолжается до тех пор, пока не будет обнаружена пустая строка (последовательные символы новой строки). Как и другие токены в файле .netrc, macdef применим только к определению машины, предшествующему ему. Элемент macdef не может использоваться несколькими определениями машин; вместо этого его необходимо определить после каждой машины, с которой предполагается его использовать. Если определен макрос с именем init, он автоматически выполняется в качестве последнего шага в процессе автоматического входа в систему. Например,


default
macdef init
epsv4 off

за которым следует пустая строка.

РЕЖИМ РЕДАКТИРОВАНИЯ В КОМАНДНОЙ СТРОКЕ

tnftp поддерживает интерактивное редактирование в командной строке с помощью библиотеки editline(3). Оно включается командой edit и включено по умолчанию, если ввод осуществляется из терминала. Предыдущие строки можно вызывать и редактировать с помощью клавиш со стрелками, а также можно использовать другие клавиши редактирования в стиле GNU Emacs.

Библиотека editline(3) настраивается с помощью файла .editrc — обратитесь к странице editrc(5) для получения дополнительной информации.

Для tnftp доступно дополнительное привязывание клавиш, обеспечивающее контекстно-зависимое завершение команд и имен файлов (включая удаленное завершение файлов). Чтобы использовать это, привяжите клавишу к команде editline(3) ftp-complete. По умолчанию это привязано к клавише TAB.

ПРИГЛАШЕНИЕ В КОМАНДНОЙ СТРОКЕ

По умолчанию tnftp отображает приглашение в командной строке «ftp>» для пользователя. Его можно изменить с помощью команды set prompt.

Приглашение может быть отображено в правой части экрана (после ввода команды) с помощью команды set rprompt.

Следующие форматы заменяются на предоставленную информацию:

%/   Текущий удаленный рабочий каталог.

%c[[0]n], %.[[0]n]
Последний компонент текущего удаленного рабочего каталога или n последних компонентов, если указана цифра n. Если n начинается с «0», количество пропущенных компонентов предшествует последнему компоненту (компонентам) в формате «/<число>trailing» (для «%c») или «...trailing» (для «%.»).

%M   Имя удаленного хоста.

%m   Имя удаленного хоста до первой точки «.».

%n   Имя удаленного пользователя.

%%   Один символ процента «%».

ОКРУЖАЮЩАЯ СРЕДА

tnftp использует следующие переменные окружения.

FTPANONPASS Пароль, который отправляется при анонимном FTP-соединении. По умолчанию «`whoami`@».

FTPMODE Переопределяет режим работы по умолчанию. Поддерживаемые значения:

active только активный режим FTP

auto автоматическое определение пассивного или активного режима (по умолчанию)

gate режим gate-ftp

passive только пассивный режим FTP

FTPPROMPT Приглашение в командной строке, которое используется. По умолчанию «ftp>». См. «ПРИГЛАШЕНИЕ В КОМАНДНОЙ СТРОКЕ» для получения дополнительной информации.

FTPRPROMPT Приглашение в правой части командной строки, которое используется. По умолчанию пустая строка. См. «ПРИГЛАШЕНИЕ В КОМАНДНОЙ СТРОКЕ» для получения дополнительной информации.

FTPSERVER Хост, который используется в качестве сервера gate-ftp при включенном режиме gate.

FTPSERVERPORT Порт, который используется при подключении к серверу gate-ftp, когда включен режим gate. По умолчанию порт, возвращаемый функцией getservbyname(3) для «ftpgate/tcp».

FTPUSERAGENT Значение, которое отправляется в заголовке HTTP User-Agent.

FTPSSLNOVERIFY

Установите значение 1, чтобы не проверять SSL-сертификаты.

HOME Для расположения файла .netrc по умолчанию, если он существует.

NETRC          Альтернативное расположение файла .netrc.

PAGER          Используется различными командами для отображения файлов. По умолчанию — more(1), если не указано или не задано.

SHELL          Для использования по умолчанию в качестве оболочки.

ftp_proxy      URL-адрес FTP-прокси для использования при выполнении FTP-запросов (если не указан, используется стандартный FTP-протокол).

http_proxy     URL-адрес HTTP-прокси для использования при выполнении HTTP-запросов. Если для прокси-аутентификации требуется имя пользователя и пароль, они автоматически будут использоваться при первой попытке аутентификации в прокси.

Если в имени пользователя или пароле требуются «небезопасные» URL-символы (например, «@» или «/»), закодируйте их с помощью кодировки RFC 3986 «%XX».

Обратите внимание, что использование имени пользователя и пароля в ftp_proxy и http_proxy может быть несовместимо с другими программами, которые их используют (например, lynx(1)).

ПРИМЕЧАНИЕ: это не используется для интерактивных сеансов, а только для выполнения команд из командной строки.

https_proxy    URL-адрес HTTPS-прокси для использования при выполнении HTTPS-запросов.

no_proxy       Список хостов (или доменов), разделенных пробелами или запятыми, для которых проксирование не должно использоваться. Каждая запись может иметь необязательный суффикс «:порт», который ограничивает сопоставление подключениями к этому порту.

РАСШИРЕННЫЙ ПАССИВНЫЙ РЕЖИМ И МЕЖСЕТЕВЫЕ ЭКРАНЫ

Некоторые конфигурации межсетевых экранов не позволяют tnftp использовать расширенный пассивный режим. Если вы обнаружите, что даже простая команда ls, кажется, зависает после вывода сообщения, такого как:

229Entering Extended Passive Mode (|||58551|)

то вам нужно будет отключить расширенный пассивный режим с помощью команды epsv4 off. См. выше раздел «Файл .netrc» для примера того, как сделать это автоматически.

ССЫЛКИ

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

СТАНДАРТЫ

tnftp пытается соответствовать следующим стандартам:

RFC 959   File Transfer Protocol

RFC 1123  Requirements for Internet Hosts - Application and Support

RFC 1635  How to Use Anonymous FTP

RFC 2389  Feature negotiation mechanism for the File Transfer Protocol

RFC 2428  FTP Extensions for IPv6 and NATs

RFC 2616  Hypertext Transfer Protocol -- HTTP/1.1

RFC 2822  Internet Message Format

RFC 3659  Extensions to FTP

RFC 3986  Uniform Resource Identifier (URI)

ИСТОРИЯ

Команда tnftp появилась в 4.2BSD.

Различные функции, такие как редактирование в командной строке, контекстно-зависимое завершение команд и файлов, динамическая полоса прогресса, автоматическая загрузка файлов и URL-адресов, сохранение времени изменения, ограничение скорости передачи, настраиваемое приглашение командной строки и другие улучшения по сравнению со стандартным BSD tnftp были реализованы в NetBSD 1.3 и последующих версиях Люком Мьюборном ⟨_⟩.

Поддержка IPv6 была добавлена проектом WIDE/KAME (но может отсутствовать во всех не-NetBSD версиях этой программы, в зависимости от того, поддерживает ли операционная система IPv6 аналогичным образом, как KAME).

ОШИБКИ

Правильное выполнение многих команд зависит от корректной работы удаленного сервера.

Ошибка в обработке символов возврата каретки в коде передачи в ASCII-режиме 4.2BSD была исправлена. Это исправление может привести к некорректной передаче двоичных файлов на серверы 4.2BSD и с них при использовании типа ASCII. Чтобы избежать этой проблемы, используйте двоичный тип изображения.

tnftp предполагает, что все IPv4-сопоставленные адреса (IPv6-адреса, имеющие вид, например, ::ffff:10.1.1.1) указывают на IPv4-адреса, которые можно обрабатывать с помощью сокетов AF_INET. Однако в определенных конфигурациях IPv6-сети это предположение неверно. В такой среде IPv4-сопоставленные адреса должны передаваться непосредственно в сокеты AF_INET6. Например, если в вашей сети используется SIIT-транслятор для IPv6-IPv4-трансляции, tnftp не сможет поддерживать вашу конфигурацию.