FTP를 사용하여 전체 폴더를 업로드 할 수 있습니까?


29

FTP를 사용하여 전체 폴더를 업로드해야합니다. 폴더와 모든 내용을 한 번에 전송할 수있는 옵션이 있습니까?

답변:


24

표준 명령 줄 ftp 클라이언트를 사용하는 경우이 MPUT명령을 사용하면 (쉘 glob 스타일) 패턴과 일치하는 모든 파일을 전송할 수 있으므로 MPUT *현재 디렉토리의 모든 파일을 보냅니다. MGET패턴과 일치하는 파일 도 검색해야합니다.

기본적으로, 모두 MPUTMGET그렇게하기 전에 각 파일을 전송할지 여부를 묻는 메시지가 표시됩니다. "PROMPT"명령 (인수 없음; 토글)으로 프롬프트를 표시하지 않을 수 있습니다.


이 질문은 원래 stackoverflow에서 왔으므로 받아 들여야 할 답변이라고 생각합니다. 최초의 asker가 사라진 것처럼 보이지만 하나를 받아들이지 않을 것입니다 ....
codetaku

경고 : Windows와 함께 제공되는 FTP 명령 줄 클라이언트는 수동 모드를 지원하지 않으므로이 기술을 사용하면 시간이 낭비 될 수 있습니다. 필자의 경우 파일을 업로드해야하고 기본적으로 설치된 툴링이있는 Windows 명령 줄을 사용하고 있었기 때문에 제 경우에는 그렇게했습니다.
sean2078

1
현재 디렉토리의 모든 일반 파일을 전송하지만 존재하는 디렉토리는 재귀 적으로 전송하지 않습니다. 그냥 조용히 그들을 무시
bergercookie의

22

ncftpput을 사용할 수 있습니다. 다음을 수행하십시오.

  1. ncftp를 설치하십시오 :

    yum install ncftp
    

yum은 소문자입니다.

또는

    apt-get install ncftp

다음 명령을 실행하십시오.

    ncftpput -R -v -u "ftp-username" ftp.website.com ftp-upload-path local-path/*

Yum은 대소 문자를 구분하므로 yum으로 변경해야합니다.
olekeh

1
여기 ncftpput에 대한 모든 CLI 옵션은 다음과 같습니다 ncftp.com/ncftp/doc/ncftpput.html
Pepijn 올리비에



2

나와 같은 다른 Windows 초보자를위한 간단한 자습서 :

전체 폴더를 업로드하는 가장 쉬운 방법은 모든 하위 폴더와 파일을 포함하는 것입니다.

  1. 이 링크에서 NcFTP 클라이언트를 다운로드하십시오 (무료이지만 기부 할 수 있음) .
  2. 목록에서 Microsoft Windows 용 NcFTP 클라이언트 3.2.5를 선택하십시오 .
  3. 설치하십시오.
  4. 완료되면 체리 아이콘이있는 작은 CMD 창이 나타납니다. 필요하지 않습니다.
  5. 표준 CMD 창을 열고 다음을 입력하십시오.
    ncftpput -u * yourUserNameHere * -p * yourUserPasswordHere * -R * www.yourWebsite.com * /
                     _C : \ yourFolderDirectory 여기 \\ * _
    (한 줄로).

참고 :

  • -R "재귀"에 대한 플래그입니다. 명령이 모든 하위 폴더를 재귀 적으로 복사합니다.
  • / (슬래시)는 웹 사이트의 루트 디렉토리입니다
  • C:\yourFolderDirectoryHere\* 내부의 모든 것을 선택 C:\yourFolderDirectoryHere

멋지게 보이지만 서버는 짧은 간격으로 800 개의 연결을 만들었다 고 IP를 금지했습니다. 연결 수를 줄일 방법이 없습니다. 또 다른 문제는 대상 파일이 이미있는 경우 업로드를 건너 뛰는 방법을 모른다는 것입니다.
16851556

2

나는 순수한 잔인한 힘이지만 조금이라도 우아하지는 않지만 명령 줄에서 나를 위해 일한 유일한 대답이라는 대답을 제공 할 것입니다. 파일 목록을 만들어 스크립트에 넣었습니다.

파일 목록을 생성하십시오.

find my-dir -exec echo "put /Users/username/"{} {}  \;

복사하여 스크립트에 붙여 넣으십시오.

#!/bin/bash

hostname="my-ftp-host"
username="username"
password="password"
ftp -in $hostname <<EOF
quote USER $username
quote PASS $password

binary
cd 123456
{COPY THE LIST HERE}
quit
EOF


0

FileZilla는 이것에 좋습니다. 아무것도 다운로드 / 설치하지 않으려면 Internet Explorer를 사용하여 수행 할 수 있습니다. 고급 옵션으로 이동하여을 선택하십시오 Enable FTP folder view (outside of Internet Explorer). 그런 다음 FTP 서버에서 탐색기 창을 가리키고 탐색기 창간에 파일과 폴더를 끌어서 놓을 수 있습니다.



0

대상 디렉토리는 zip 파일입니다. 아래 코드를 사용하여 전체 zip 파일을 ftp 서버로 복사 할 수 있습니다.

//Taking source and target directory path
string sourceDir = FilePath + "Files\\" + dsCustomer.Tables[0].Rows[i][2].ToString() + "\\ConfigurationFile\\" + dsSystems.Tables[0].Rows[j][0].ToString() + "\\XmlFile";

string targetDir = FilePath + "Files\\Customers\\" + CustomerName + "\\" + SystemName + "\\";                                                                                       
foreach (var srcPath in Directory.GetFiles(sourceDir))
{
    //Taking file name which is going to copy from the sourcefile                                              
    string result = System.IO.Path.GetFileName(srcPath);

    //If that filename exists in the target path
    if (File.Exists(targetDir + result))
    {
        //Copy file with a different name(appending "Con_" infront of the original filename)
        System.IO.File.Copy(srcPath, targetDir + "Con_" + result);
    }
    //If not existing filename
    else
    {
        //Just copy. Replace bit is false here. So there is no overwiting.
        File.Copy(srcPath, srcPath.Replace(sourceDir, targetDir), false);
    }
}         

좋지만 프로그램이 컴파일되지 않습니다.
DavidPostill

0

내 대답은 @dgig의 답변의 변형입니다.

모든 파일을 나열하고 파일 (put 명령 포함)을 파일로 저장할 수 있습니다.

find my-dir -exec echo "put /Users/username/"{} {} > list.txt \; 

그런 다음 sftp를 사용하여 파일을 처리하십시오.

sftp -C -b sftpbatchfile.txt name@server

-C압축 용, -b배치 파일 용


요청한대로 FTP를 사용하지 않습니다. 이 sftp프로그램은 공통된 문자가 있지만 다른 프로토콜 인 SFTP 프로토콜을 사용합니다. 그리고 enter code here남은 부분 은 편집하지 않았습니다 .
dave_thompson_085
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.