답변:
표준 명령 줄 ftp 클라이언트를 사용하는 경우이 MPUT
명령을 사용하면 (쉘 glob 스타일) 패턴과 일치하는 모든 파일을 전송할 수 있으므로 MPUT *
현재 디렉토리의 모든 파일을 보냅니다. MGET
패턴과 일치하는 파일 도 검색해야합니다.
기본적으로, 모두 MPUT
와 MGET
그렇게하기 전에 각 파일을 전송할지 여부를 묻는 메시지가 표시됩니다. "PROMPT"명령 (인수 없음; 토글)으로 프롬프트를 표시하지 않을 수 있습니다.
ncftpput을 사용할 수 있습니다. 다음을 수행하십시오.
ncftp를 설치하십시오 :
yum install ncftp
yum은 소문자입니다.
또는
apt-get install ncftp
다음 명령을 실행하십시오.
ncftpput -R -v -u "ftp-username" ftp.website.com ftp-upload-path local-path/*
LeechFTP 또는 FileZilla와 같은 FTP 클라이언트 또는 이와 유사한 것을 사용하십시오. 많은 사람들이 CuteFTP에 의해 맹세하지만 마지막으로 확인한 쉐어웨어입니다. 모든 디렉토리 구조를 포함한 전체 폴더 전송을 지원합니다.
나와 같은 다른 Windows 초보자를위한 간단한 자습서 :
전체 폴더를 업로드하는 가장 쉬운 방법은 모든 하위 폴더와 파일을 포함하는 것입니다.
ncftpput -u * yourUserNameHere * -p * yourUserPasswordHere * -R * www.yourWebsite.com * / _C : \ yourFolderDirectory 여기 \\ * _(한 줄로).
참고 :
-R
"재귀"에 대한 플래그입니다. 명령이 모든 하위 폴더를 재귀 적으로 복사합니다./
(슬래시)는 웹 사이트의 루트 디렉토리입니다C:\yourFolderDirectoryHere\*
내부의 모든 것을 선택 C:\yourFolderDirectoryHere
나는 순수한 잔인한 힘이지만 조금이라도 우아하지는 않지만 명령 줄에서 나를 위해 일한 유일한 대답이라는 대답을 제공 할 것입니다. 파일 목록을 만들어 스크립트에 넣었습니다.
파일 목록을 생성하십시오.
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
대상 디렉토리는 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);
}
}
내 대답은 @dgig의 답변의 변형입니다.
모든 파일을 나열하고 파일 (put 명령 포함)을 파일로 저장할 수 있습니다.
find my-dir -exec echo "put /Users/username/"{} {} > list.txt \;
그런 다음 sftp를 사용하여 파일을 처리하십시오.
sftp -C -b sftpbatchfile.txt name@server
-C
압축 용, -b
배치 파일 용
sftp
프로그램은 공통된 문자가 있지만 다른 프로토콜 인 SFTP 프로토콜을 사용합니다. 그리고 enter code here
남은 부분 은 편집하지 않았습니다 .