ryg

Команда ftp в Mac OS X и FreeBSD

Синтаксис

   ftp [-46AadefginpRtvV] [-N netrc] [-o output] [-P port] [-q quittime] [-s srcaddr] [-r retry]
         [-T dir, max[,inc]] [[user@]host [port]] [[user@]host:[path][/]] [file:///path]
         [ftp://[user[:password]@]host[:port]/path[/][;type=X]] [http://[user[:password]@]host[:port]/path]
         [...]
     ftp -u URL file [...]

Описание

Команда ftp обеспечивает пользовательский интерфейс для стандартного интернет протокола FTP (File Transfer Protocol). Программа позволяет принимать и передавать файлы на удаленный сервер или сайт.
Данная утилита идеально подходит для использования в скриптах для загрузки по FTP и HTTP протоколам.
 
Указание параметров может быть произведено как в команде при запуске утилиты, так и после ее запуска в интерпретаторе.
 

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

-4  Использовать только IPv4.
-6  Использовать только IPv6.
-A  Включить активный режим. Данный параметр запрещает использовать пассивный режим. Без указания данного параметра ftp будет пытаться использовать пассивный режим работы и перейдет к активному режиму только в случае, если пассивный режим не поддерживается сервером.  Полезно при работе со старыми серверами, которые не корректно поддерживает пассивный режим работы.
-a  Анонимный режим работы. Отключает стандартную процедуру регистрации пользователя на сервере.
-d  Включить режим отладки. 
-e  Отключает редактирование командной строки. 
-f  Сброс и перезагрузка кэша, предназначенного для передачи данных через FTP или HTTP прокси.
-g  Отключает подстановку имени файла
-i  При передаче нескольких файлов отключает интерактивную подсказку.
-n  Отключает вход на сервер (auto-login) в автоматическом режиме. Если режим автоматической регистрации включен, программа проверит содержимое файла .netrc, находящийся по адресу ~/.netrc и если в нем существует учетная запись для данного сервера, будет сделана попытка регистрации. Если точка входа не описана, то утилита передаст серверу логин текущего пользователя (с локального компьютера).
-N netrc  Вместо файла  netrc будет использован заданный файл  netrc. По умолчанию используется ~/.netrc. Подробное  описание содержимого файла указано ниже.
-o output  При автоматическом скачивании файлов сохранять их в каталоге output. Значение output должно отвечать соглашению об именовании файлов (см. ниже). 
-p  Включить пассивный режим работы для использования соединения из под брандмауэра. Этот параметр устарел, так как утилита использует пассивный режим по умолчанию, переходя в активный режим только в случае если сервер его не поддерживает.
-P port  Задает номер порта для доступа.
-q quittime  Разорвать соединение в случае если соединение застопорилось на quittime секунд.
-r wait  В случае неудачного соединения повторить попытку через wait секунд.
-R  Перезапустить все незащищенные скачивания 
-s srcaddr  Использовать  srcaddr как локальный адрес для всех соединений.
-t  Включить трассировку пакетов.
-T directionmaximum[,increment]  Установить максимальную скорость передачи (maximum) в байт в секунду, для направления (direction) и ее прирост (increment). Подробнее в разделе скорость.
-u URL file [...]  Загрузка (upload) файлов file указанных в командной строке по адресу URL.
-v  Включить подробный режим и отображение процесса передачи файлов. Заставляет ftp показать все ответы от удаленного сервера и статистический отчет о передаче данных. Если программа запущена из терминала (terminal), то данный параметр включен
-V  Отключает режим подробных сообщений и вывод информации о состоянии процесса передачи данных.

После соединения с сервером программа запускает командный интерпретатор и ждет дальнейших указаний пользователя. В режиме ожидания  выводится подсказка "ftp>".

Команды ftp интерпретатора:

! [command [args]] Вызвать интерактивную оболочку bash на локальном компьютере.
$ macro-name [args] Исполнить макрос (macro-name), заданный с командой macdef или инициализированный в файле  .netrc, параметры  args передаются  в макрос. 
account [passwd] Если не указан ​параметр passwd, то пользователю будет предложено ввести пароль без отображения вводимых символов.
append local-file [remote-file] Файл local-file с клиентского компьютера добавить к содержимому файла remote-file на удаленном компьютере. В случае, если файл remote-file  не задан, то будет использовано имя  local-file (если это необходимо, то имя файла пребразуется по правилам, описанным ниже). Тип, режим и формата передачи используются текущие.
ascii Тип передачи данных ascii. Параметр по умолчанию.
bell Передача каждого файла завершается звуковым сигналом.
binary Бинарная передача файлов. По умолчанию используется символьная - ascii.
bye Завершить сессию связи по FTP и завершить работу программы.
case Выполнить на сервере преобразование регистра символов в именах фалов для команд mget, get и mputПо умолчанию данный параметр отключен.
cd remote-directory Изменить текущий каталог на сервере. Синтаксис аналогичен команде cd в bash.
cdup   Перейти в папку уровнем выше по отношению к рабочей, на удаленном сервере.
chmod mode remote-file Изменить права доступа mode к файлу remote-file на сервере. Параметры mode аналогичны команде chmod в терминале.
close Завершет сеанс на удаленном компьютере и вернуться в командный интерпретатор. Существующие макросы будут удалены.
cr При передаче по ascii устанавливает обработку символа возврата каретки <CR>.
ftp_debug [ftp_debug-value] Переключение в режим отладки. Необязательный параметр ftp_debug-value задает уровень отладки.
delete remote-file Удалить указанный файл remote-file на удаленном компьютере.
dir [remote-path [local-file]] Вывести на экран содержимое папки с сервера. Объем информации для печати определяется сервером, для большинства UNIX систем вывод будет аналогичен выводу по команде `ls -l'. Если путь к папке не определен (remote-path), то будет выведено содержимое текущей. 
disconnect Аналогично команде close
edit  Переключение в режим редактирования командной строки. Включается автоматически при работе из терминала.
epsv4 Переключить в режим расширенного режима команд EPSV и EPRT при соединении по IPv4. Сначала программа пытается использовать EPSV / EPRT и лишь потом PASV / PORT.  Включено по умолчанию. Если расширенный режим не работает, то параметр в текущем соединении будет отключен до следующей команды epsv4.
exit Синоним команды bye
features Показать поддерживаемые сервером функции ( с помощью команды FEAT).
fget localfile Скачать файлы, указанные в localfile. По одному файлу в строке.
form format Установить передачу файлов в форме format. Поддерживается только один формат "non-print".
ftp host [port] Синоним команде open.
gate [host [port]] Переключить в режим gate-ftp, используемый при подключении через FWTK и Gauntlet ftp прокси. Не будет работать, если gate-ftp сервер не был установлен (либо явно пользователем, либо FTP-сервером, через переменную среды)
 get remote-file [local-file] Получить файл с сервера и сохранить на локальном компьютере. Если параметр с именем локального файла local-file опущен, то будет использовно имя файла с сервера, но будет  сделано преобразование имени согласно текущим установкам локального компьютера (чувствительность к регистру, преобразования ntrans, nmap). Передача данных будет произведена с учетом текущих настроек передачи данных.
glob  Изменить режим подстановки расширений файлов для команд mget, mput и mreget. При отключении подстановки преобразования имен не происходит. Обработка имени каждого файла при выполнении команд mdelete, mget и mreget производится индивидуально. Необходимо помнить, что mput осуществляется как в csh. При передаче каталога расширение имени каталога, преобразование его расширения зависит от настроек ftp-сервера.
Команды mget, mput и mreget не предназначены для переноса всей иерархии каталогов, для этого лучше использовать архиватор tar и передачу в режиме binary.
hash [size] Изменить размер передаваемых блоков, по умолчанию 1024 байта.
help [command] Вывести подсказку по команде. Если команда не задана, будет выведен список доступных команд.
idle [seconds] Установить время простоя сервера в секундах. Если seconds не указан, то будет выведено значение действующее в данный момент.
image Синоним binary
lcd [directory] Перейти в  каталог directory на клиентской стороне. Если параметр directory не задан, будет текущей папкой на локальном компьютере станет домашний каталог пользователя.
less file Синоним page
lpage local-file Показать содержимое локального файла программой, указанной в параметре set pager.
lpwd Вывести имя папки, которая является текущей на локальной машине.
ls [remote-path [local-file]] Синоним dir
macdef macro-name Задать макрос. Строки введенные после команды будут записаны в макрос, завершить ввод макроса можно вводом пустой строки.
mdelete [remote-files]

Существует ограничение: может быть всего 16 макросов и 4096 символов во всех определенных макросах. Макросы действительны только в текущем сеансе, но если они определены вне сеанса, то могут быть вызваны командой open. Для вызова используется команда $macro-name описанная выше.

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

mdelete [remote-files] Удалить файл на сервере
mdir remote-files local-file Подобно команде dir, описанной выше, за исключением того, что может быть определено несколько файлов.
mget remote-files Задать расширения для скачиваемых файлов на удаленном компьютере и получить файлы. Смотреть команду globe по изменению расширений. Имена файлов обрабатываются в соответствии с правилами регистра символов, ntrans и nmap. Файлы принимаются в текущий каталог на локальном компьютере. 
mkdir directory-name Создать каталог на сервере.
mls remote-files local-file Аналогично команде ls, но дополнительно могут быть указаны файлы. В интерактивном режиме пользователю будет предложено подтвердить, является ли последний параметр локальным файлом.
mlsd [remote-path] Отобразить содержимое каталога на удаленном компьютере в удобном для программного разбора виде. Формат вывода может быть изменен с помощью `remopts mlst ...'.
mlst [remote-path] Отобразить сведения о пути к папке на удаленном компьютере в удобном для программного разбора виде. Формат вывода может быть изменен с помощью `remopts mlst ...'.
mode mode-name Задать режим передачи данных  mode-name. Поддерживается только режим "stream'', он установлен по умолчанию.
modtime remote-file Посмотреть дату и время последнего изменения файла на сервере, в формате RFC2822.
more file Синоним page.
mput local-files Сделать список файлов на основании шаблона local-files и передать их на сервер. Необходимо учитывать glob и преобразование имен файлов. Не позволяет задавать имена файлов на удаленном сервере.
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 в случае неуказания имен локальных файлов будет выполнено преобразование имен. Значение inpattern описывает шаблон для входящих файлов, а outpattern для отправляемых. Перед преобразованием nmap, если это необходимо, будут выполнены преобразования case и ntrans. В шаблонах возможно использование переменных "$1","2" ... "9". Если вам необходимо использовать символ $, перед ним необходимо указать обратный слэш "\$". Все остальные символы не преобразуются и используются для создания имени файла, например, если удаленный файл имеет mydata.data, а шаблон inpattern имеет вид $1.$2, то переменной $1 будет присвоено значение mydata и переменной $2 соответственно data.

ntrans [inchars [outchars]]  
open host [port] Установить соединение с сервером FTP (host). В случае если указан порт (port), то программа будет пытаться установить соединение через заданный порт. Если включен параметр auto-login, то будет предпринята попытка автоматического ввода имени пользователя и пароля.
page file  Вывести на экран содержимое файла file постранично.
passive [auto] Если без параметров переключает в пассивный режим. Если указано auto, то утилита будет действовать как в случае, если FTPMODE установлена в 'auto'. Если установлен пассивный режим (по умолчанию) то  всем текущим соединениям  вместо команды PORT будет отправлена команда PASV. Она запросит  удаленный сервер открыть порт и вернет адрес порта. Сервер прослушает порт и разрешит соединение. В случае использования традиционной команды PORT, клиент прослушивает порты, посылает запрос на данный сервер, который подключается обратно. Пассивный режим полезен при работе по протоколу FTP через маршрутизаторы, шлюзы или сервера, контролирующие направления трафика. Однако не все FTP сервера поддерживают команду PASV
pdir [remote-path] Аналогично команде dir, но содержимое папки выводится постранично.
pls [remote-path] Аналогично команде ls, но содержимое папки выводится постранично.
pmlsd [remote-path] Аналогично команде mlsd, но содержимое папки выводится постранично.
preserve Изменяет у полученных файлов время последнего изменения.
progress Изменяет режим отображения передачи файла.
prompt 

Переключает режим отображения запросов, возникающих в процессе передачи файлов. Если режим запросов отключен (по умолчанию он включен), то команды mget и mput будут переносить все файлы, а mdelete удалять.
Возможные ответы на запрос:

a  -All.  Ответить "да" на этот и все последующие запросы.
n  -No. Ответить "нет" и не передавать файл.
p  -Ответить "да" и отключить режим запросов, как командой "promt off".
q - Прервать текущую операцию
y  - Ответить "да".
?  - Получить подсказку
Любой другой ответ будет интерпритирован как "да"

proxy ftp-command Данная команда позволяет ftp-клиенту организовать обмен файлами между двумя удаленными серверами.
 Первая командой proxy должна быть команда open для установки подключения. Чтобы посмотреть доступные команды вторичного подключения можно использовать команду proxy ?.  Необходимо учитывать, что не все команды под управлением proxy работают аналогично командам при обычном соединении. Команда Open не может задавать новый макрос в режиме auto-login, команда close не удаляет макросы, get и mget передают файлы с первичного сервера на  вторичный сервер, а put и mput передают файл из второго сервера на первый. Передача файлов третьему участнику связи зависет от наличия поддержки пассивного режима на вторичном сервере.
put local-file [remote-file] Передать файл с локального компьютера на сервер. Если remote-file не указан, то будет использовано имя локального файла после соответствующей обработки по правилам ntrans и nmap
pwd  Показать имя текущей рабочего каталога на сервере.
quit Синоним bye.
quote arg1 arg2 ...  Заданные параметры arg1 arg2 ... будут переданы на сервер без каких-либо преобразований.
 rate direction [maximum [increment]] Установить ограничение в скорости передачи данных в байтах в секунду. Если значение maximum равно 0, то ограничения будут сняты.
Направление direction принимать следующие значения:
all - в оба направления
get - входящий трафик
put - исходящий трафик
Максимальная скорость может быть изменена "на лету" с увеличением на increment (по умолчанию 1024 байта) каждый раз при получении сигнала:
SIGUSR1 -увеличить скорость
SIGUSR1 -снизить скорость (результирующая скорость должна быть позитивным числом).
Если значение maximum не указано, то будет показаны текущие установки. Может не работать в режиме ascii
rcvbuf size Установить размер сокета буфера приема.
recv remote-file [local-file] Синоним get.
reget remote-file [local-file] Аналогично команде get, но если локальный файл уже существует и меньше удаленного, то система будет пытаться не начать сначала, а восстановить прием уже существующего файла. Команда полезна в сетях с частыми обрывами соединения.
remopts command [command-options] Установить параметры для команды command на удаленном сервере.
rename [from [to]] переименовать файл на сервере
reset Очистить очередь ответов сервера. Эта команда повторно синхронизирует и восстанавливает последовательность команд/ответов с удаленным сервером. Может потребоваться в случае нарушения FTP-протокола на сервере.
restart marker Выполнить повторную передачу файла начиная с места указанного marker. В UNIX системах смещение marker указывается в байтах.
rhelp [command-name] Получить подсказку по команде с удаленного компьютера.
rmdir directory-name Удалить папку directory-name на сервере.
rstatus [remote-file] Показывает статус файла на удаленном компьютере. Без параметров показывает статус удаленного компьютера.
runique Переключает режим сохранения файлов с уникальными именами на локальном компьютере. По умолчанию выключен. Если режим включен то в случае использования команды mget и при наличии файла с именем, совпадающим с принимаемым, в конце сохраняемого файла будет добавлен его порядковый номер, вплоть до 99. Сгенерированное имя файла будет сообщено. 
send local-file [remote-file] Синоним команды put.
sendport Переключает режим использования команды PORT. Обычно ftp пытается использовать данную команду при установке соединения для каждой передачи. Если команда PORT выполняется с ошибкой, то используется порт по умолчанию, если использование PORT отключено, то никаких попыток выполнить ее не производится. Это полезно для некоторых реализаций FTP некорректно обрабатывающих данную команду.
set [option value] Установить значения value параметров option. Если команда используется без параметров, то будут выведены все действующие параметры и их значения. Поддерживаются:
anonpass    значение в $FTPANONPASS
ftp_proxy    значение в $ftp_proxy.
http_proxy  значение в $http_proxy.
no_proxy    значение в $no_proxy.
pager         значение в $PAGER.
prompt       значение в $FTPPROMPT.
rprompt     значение в $FTPRPROMPT.
site arg1 arg2 ... Передать arg на сервер как  команду SITE
size remote-file Получить размер файла remote-file на удаленном компьютере.
sndbuf size Установить размер буфера передачи данных.
status Показать статус соединения и действующие параметры передачи данных.
struct struct-name Установить структуру передачи данных struct-name. На данный момент поддерживается только "file".
sunique Переключает режим поддержки уникальности имен файлов при передаче на удаленный сервер. Требует поддержки сервером команды STOU. Если режим включен, удаленный компьютер сообщает о присвоенном уникальном имени. По умолчанию выключен. 
system Показывает сведения об операционной системе на удаленном компьютере.
tenex Установить тип передачи файлов TENEX.
throttle Синоним команды rate.
trace Переключить режим трассировки пакетов.
type [type-name] Задать тип передачи данных. По умолчанию ascii. Если команду выполнить без параметров, будет выведен текущий тип передачи.
umask [newmask] Установить значение umask на удаленном сервере. Если newmask пропущен, то будет выведено текущее значение.
unset option Отменить значение параметра, смотреть описание команды set.
usage command Напечатать написание команды command
user user-name [password [account]] Идентифицировать пользователя на удаленном FTP сервере. Если пароль не указан, а он необходим при авторизации, то будет показано приглашение ввести пароль в неотображаемом режиме. Если имя пользователя не указано, то сервер предложит его ввести. 
verbose Подробный режим вывода сообщений с сервера. По умолчанию включен.
xferbuf size Установить размер буферов приема-передачи.
? [command] Синоним команды help.

Если параметры команды содержат пробелы, то данные параметры можно взять в кавычки ".
Выполнение команд изменения настроек может быть достаточно длительным.

Команды, в которых фигурирует количество байт в параметрах (например: hash, rate, xferbuf) могут использовать суффикс единиц измерения:

b -байты, то есть без изменений
k -килобайты (1024 байта)
m -Мегабайты (1048576 байт)
g -Гига (1073741824 байта)

 

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

Режим автоматического скачивания файлов (AUTO-FETCHING )

В дополнение к стандартным командам версия ftp для Apple Mac OS X поддерживает режим автоматической выборки файлов, для этого достаточно передать список имен файлов в командной строке.
Допустимы следующие варианты написания:

 [user@]host:[path][/] 
   Классический вариант вызова. Если путь содержит признаки, описанные в команде glob и универсализация разрешена, то данное написание эквивалентно команде mget path.
Если путь не содержит символов подстановки, то он будет сохранен в локальной папке с именем, как описано в basename

 ftp://[user[:password]@]host[:port]/path[/][;type=X]
Используется в случае, если требуется авторизация на сервере и URL получается с помощью протокола ftp. Суффиксы могут иметь значения  ';type=A' (тип передачи ascii) или ';type=I' (тип передачи двоичный код). По умолчанию используется двоичный код.

Согласно RFC3986 ftp интерпретирует путь после ftp:// следующим образом:

Слэш '/' сразу после host[:port] будет оценен как символ, указывающий на начало пути, а не как элемент пути. Если в теле пути встречаются другие символы '/', то ftp их интерпретирует  как завершение элемента пути и для выполнения команды cd и только последний используется для команды get.
Если в теле пути будет найден двойной слэш '//', то будет исполнена команда cd без параметров (я сомневаюсь, что это необходимо делать).

Последовательности символов в виде '%XX', где XX код символа в шестнадцатеричном исчислении будут заменены на сами символы после того, как путь будет разделен на компонент, но прежде чем будут выполнены команды cd или get. Наиболее часто используемые символы '%2F' (символ  '/') и '%7E' (символ тильды '~').

Такой разбор пути имеет следующие последствия:

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

 ftp://myname:mypass@localhost/%2fetc/motd

Управлять выполнением cd и get можно используя / и %2F (или %2f), например:

 

 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".
 ftp://host/%2Fdir1%2Fdir2/file    "cd /dir1/dir2", "get file".
 ftp://host/dir1%2Fdir2%2Ffile     "get dir1/dir2/file".
 ftp://host/%2Fdir1%2Fdir2%2Ffile  "get /dir1/dir2/file".

Соответственно необходимо иметь права для доступу к каждой промежуточной папке, на которую будет осуществлен переход с помощью cd. 

http://[user[:password]@]host[:port]/path
Используется в случае, если требуется авторизация на сервере и URL получается с помощью протокола HTTP.

 file:///path
Локальный URL, скопировать файл /path с локального сервера.

Если параметр -o и иное не указано ранее, то файл будет сохранен в текущем каталоге аналогично команде basename.

Прерывание передачи файлов

Чтобы прервать передачу необходимо использовать сочение клавиш прерывания, для терминала это обычно Ctrl-C. Передача файлов будет немедленно остановлена. Прием файлов будет остановлен путем отправления серверу по FTP протоколу команды ABORT. Если удаленный сервер не поддерживает команду ABORT, то прием файлов будет продолжен, пока весь файл не будет скачан. Если последовательность прерывания в терминале будет нажата во время ожидания ответа сервера на команду ABORT, то будет закрыто соединение.

Соглашение об именах файлов

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

  1. Если имя файла '-', то будет использован стандартный ввод или вывод в зависимости от команды.
  2. Если первый символ в имени '|', то остальные считаются командой оболочки. ftp выполняет команду, используя popen, и считывает или выводит данные в стандартный вывод. Если команда содержит пробелы, то необходимо использовать кавычки, например: "| ls -lt". Особенно полезным применением данного механизма является "dir ""   |more''.

Параметры передачи файла.

Спецификация FTP поддерживает различные типы передачи файлов:

  • ascii
  • image (binary)
  • ebcdic
  • local byte size (для PDP-10 и PDP-20)

Описание файла .netrc

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

machine name 
Определяет имя удаленного компьютера. Процесс автоматической авторизации ищет имя компьютера name, указанное в командной строке, пока не будет найдено необходимое имя или достигнут конец файла.

default
Аналогично machine name, но действует для всех имен. В файле может быть описан только один раз и после всех указанных имен удаленных компьютеров. Обычно используется в следующем виде:
default login anonymous password user@site
тем самым давая возможность пользователю автоматически анонимно входить на сервера не указанные в .netrc. Это значение можно переопределить, используя параметр -n  при запуске программы.

login name
Задает имя пользователя name на удаленной машине. Если этот знак присутствует автоматическая авторизация будет использовать это имя пользователя.

password string
Задает пароль. Если этот признак присутствует, то пароль, указанный в данном ключе string будет передан серверу по его требованию. Необходимо помнить о безопасности и о правах доступа к файлу содержащему пароли. macdef name

Определяет макрос. Макрос определяется для каждого сервера отдельно и не может быть общим для разных FTP серверов. Заканчивается определение макроса пустой строкой.  Макрос с именем init будет выполнен в конце процесса авторизации. Например:

defaul
macdef init
epsv4 off
	

Для создания файла .netrc с хранящемся в нем паролем, необходимо выполнить следующие команды:
Создать сам файл в редакторе nano

sudo nano .netrc 

Заполнив и сохранив его, необходимо установить Вас в качестве владельца (по умолчанию владельцем этого файла в Mac OS X является система). Для этого получите свой uid командой 

id
uid=501(имяпользователя) gid=20(staff) groups=20(staff),401(com.apple.access_screensharing),12(everyone),33(_appstore),61(localaccounts),79(_appserverusr),80(admin),81(_appserveradm),98(_lpadmin),100(_lpoperator),204(_developer)

В данном случае команда id показала uid = 501 (у Вас будет свой)

sudo chown 501 .netrc

и устанавливаем права на файл .netrc (хранящий пароли), закрывая доступ для всех, кроме Вас

sudo chmod 600 .netrc

Файл .netrc создан и готов к использованию.

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

ftp поддерживает интерактивное редактирование командной строки, используя библиотеку editline (3). Данная возможность включена по умолчанию, если запуск осуществлен и терминала (terminal.app). Клавиши управления командной строкой аналогичны клавишам управления терминала.

Настройка библиотеки editline хранится в файле .editrc

Подсказка командной строки

По умолчанию подсказка командной строки имеет вид "ftp>", однако она может быть изменена командой set prompt. Добавить подсказку с правой стороны экрана можно с помощью команды set rprompt. Для изменения подсказки могут быть использованы следующие последовательности:

%/ - отображать имя текущей рабочей папки на сервере
%c[[0]n],%.[[0]n] - задняя часть имени рабочего каталога или n символов с конца пути, если n начинается с 0, то количество компонентов пути в формате после /  ("/trailing'' (для  `%c') или ``...trailing'' (для  `%.').
%M -имя хоста
%m -краткое имя хоста ( до первого символа точки '.')
%n  -имя пользователя
%% -символ %

Полезно в макрос init файла .netrc включить строку set rprompt  "%m %/"

Переменные окружения

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

FTPANONPASS -пароль для анонимной передачи, по умолчанию "whoami`@''.
FTPMODE -отменяет режим работы по умолчанию, доступны следующие значения:

  • active -только активный режим FTP
  • auto   -автоматическое определение режима (это значение используется по умолчанию)
  • gate   - режим gate-ftp
  • passive - только пассивный режим

FTPPROMPT -текст подсказки командной строки (по умолчанию "ftp>").
FTPRPROMPT -текст правой подсказки командной строки.
FTPSERVER -имя сервера если используется режим gate-ftp.
FTPSERVERPORT -порт подключения к серверу в режиме gate-ftp.
FTPUSERAGENT -значение посылаемое в качестве заголовка HTTP User-Agent .
HOME - место расположения файла .netrc если он существует.
NETRC - альтернативное место для поиска файла .netrc .
PAGER -используется различными командами для отображения файлов.
SHELL - Оболочка по умолчанию.

Если вам некомфортно работать с командной строкой, то существует ряд бесплатных и платных FTP клиентов для Mac OS X. В стандартной системе уже имеется FTP сервер для Mac OS X его нужно только запустить из терминала. SFTP сервер запускается из Настроек Системы.

Связанные команды

curl -передать/принять и сохранить данные по HTTP/HTTPS протоколу

Алфавитный список команд terminal в Mac OS X