ฉันต้องอัปโหลดโฟลเดอร์เต็มโดยใช้ FTP มีตัวเลือกสำหรับการโอนย้ายโฟลเดอร์และเนื้อหาทั้งหมดในครั้งเดียวหรือไม่?
ฉันต้องอัปโหลดโฟลเดอร์เต็มโดยใช้ FTP มีตัวเลือกสำหรับการโอนย้ายโฟลเดอร์และเนื้อหาทั้งหมดในครั้งเดียวหรือไม่?
คำตอบ:
หากคุณใช้ไคลเอนต์บรรทัดคำสั่ง ftp มาตรฐานคำMPUT
สั่งจะอนุญาตให้คุณถ่ายโอนไฟล์ทั้งหมดที่ตรงกับรูปแบบ (เชลล์ glob-style) ดังนั้นMPUT *
จะส่งไฟล์ทั้งหมดในไดเรกทอรีปัจจุบัน นอกจากนี้ยังมีMGET
การดึงไฟล์ที่ตรงกับรูปแบบ
โดยค่าเริ่มต้นทั้งสองMPUT
และMGET
จะพร้อมท์ว่าจะถ่ายโอนแต่ละไฟล์ก่อนทำเช่นนั้นหรือไม่ คุณอาจต้องการปิดพรอมต์ด้วยคำสั่ง "PROMPT" (ไม่มีข้อโต้แย้งมันเป็นสลับ)
คุณสามารถใช้ ncftpput ทำดังต่อไปนี้:
ติดตั้ง ncftp:
yum install ncftp
ยำเป็นตัวพิมพ์เล็ก
อีกวิธีหนึ่งคือ:
apt-get install ncftp
2. ดำเนินการคำสั่งต่อไปนี้:
ncftpput -R -v -u "ftp-username" ftp.website.com ftp-upload-path local-path/*
ใช้ไคลเอนต์ FTP เช่น LeechFTP หรือ FileZilla หรือสิ่งที่คล้ายกัน หลายคนสาบานด้วย CuteFTP แต่มันเป็นแชร์แวร์สุดท้ายที่ฉันตรวจสอบ รองรับการถ่ายโอนโฟลเดอร์ทั้งหมดรวมถึงโครงสร้างไดเรกทอรี
บทช่วยสอนง่ายๆสำหรับมือใหม่ Windows อื่น ๆ เช่นฉันที่มาที่นี่:
วิธีที่ง่ายที่สุดในการอัปโหลดทั้งโฟลเดอร์ (ที่มีโฟลเดอร์ย่อยและไฟล์ทั้งหมด) คือ:
ncftpput -u * yourUserNameHere * -p * yourUserPasswordHere * -R * www.yourWebsite.com * / _C: \ yourFolderDirectoryHere \\ * _(เป็นหนึ่งบรรทัด)
โปรดทราบว่า:
-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
ลองดูสิ
คุณยังสามารถสร้างโฟลเดอร์บนเซิร์ฟเวอร์โดยทางโปรแกรมแล้วอัปโหลดไฟล์ทั้งหมดไปยังโฟลเดอร์ใหม่
FileZilla ยอดเยี่ยมสำหรับสิ่งนี้ หากคุณไม่ต้องการดาวน์โหลด / ติดตั้งอะไรก็สามารถทำได้ด้วย Internet Explorer Enable FTP folder view (outside of Internet Explorer)
ไปลงในตัวเลือกขั้นสูงและเลือก จากนั้นคุณสามารถชี้หน้าต่าง explorer ที่เซิร์ฟเวอร์ FTP ของคุณและลากและวางไฟล์และโฟลเดอร์ระหว่าง windows explorer
Firefox มีปลั๊กอินที่เรียกว่าFireFtpซึ่งเป็นไคลเอนต์ ftp ที่ดี
dir เป้าหมายคือไฟล์ซิป คุณสามารถคัดลอกไฟล์ 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
ที่เหลืออยู่