web-dev-qa-db-ja.com

1行でFTP

Ftpに単一のファイルをアップロードするために使用する次のコマンドがあり、OS X El Capital10.11.4で正常に動作します

ftp -in -u ftp:// username:password @ servername/path/to / localfile

質問

  1. -inは何の略ですか?
  2. すべてまたは特定のファイルをダウンロードするための同様の単一行コマンドはありますか?
  3. FTP上のファイル/フォルダを一覧表示するための同様の単一のコマンドはありますか?

うまくいかなかった回答に基づくテスト

  1. ftp -in -u localfile ftp:// username:password @ servername/path/to / 文句を言ったので機能しませんでしたftp:URLが-uの後にあることを期待しているため、無効なURL `localfile '
  2. また、ftp -in localfile -u ftp:// username:password @ servername/path/to / を試したところ、使用法:ftp Host-name [port]と表示されたため、移動できないようです。どちらか最後までのURL

うまくいった答えに基づくテスト

  1. ftp -in ftp:// username:password@servername/path/to/file.Zip /local/pathこれを使用して単一のファイルをダウンロードできました
  2. ftp ftp:// username:password @ servername <<< "ls"これはリストに機能しました

その他のコメント

<<< "ls"の周りの答えからアイデアを得た後

私は試した

ftp -in ftp:// username:password @ servername / <<< "mget *" 'これにより、すべてのファイルをダウンロードできます

1
SeanClt

ターミナルにman ftpと入力します。マニュアルが表示され、要求しているすべての情報が含まれている場合。

  1. -inは何の略ですか

-i複数のファイル転送中のインタラクティブプロンプトをオフにします。

-n非自動フェッチ転送の初期接続時にftpが「自動ログイン」を試行しないようにします。自動ログインが有効になっている場合、ftpはユーザーのホームディレクトリにある.netrc(以下を参照)ファイルで、リモートマシンのアカウントを説明するエントリを確認します。エントリが存在しない場合、ftpはリモートマシンのログイン名(デフォルトはローカルマシンのユーザーID)の入力を求め、必要に応じて、ログインに使用するパスワードとアカウントの入力を求めます。自動フェッチ転送の自動ログインを上書きするには、必要に応じてユーザー名(およびオプションでパスワード)を指定します。

  1. すべてまたは特定のファイルをダウンロードするための同様の単一行コマンドはありますか?

これをテストしました。

ftp -in ftp://username:password@servername/path/to/file.Zip /local/path
  1. FTP上のファイル/フォルダを一覧表示するための同様の単一のコマンドはありますか?

これを試して

ftp ftp://username:password@servername <<< "dir"

最初は、サーバーのOSによってlsとdirが異なると思いました。ただし、manページには、dirはOSに依存しないため、より適切であると記載されています。

dir [remote-path [local-file]]リモートマシン上のディレクトリの内容のリストを出力します。リストには、サーバーが含めることを選択したシステム依存情報が含まれます。たとえば、ほとんどのUNIXシステムは、コマンドls -l'. If remote-path is left unspecified, the current working directory is used. If interactive prompting is on, ftp will Prompt the user to verify that the last argument is indeed the target local file for receiving dir output. If no local file is specified, or if local-file is- 'から出力を生成し、出力は端末に送信されます。

2
kent