Tôi cần tải lên một thư mục đầy đủ bằng FTP. Có bất kỳ tùy chọn để chuyển một thư mục và tất cả các nội dung của nó cùng một lúc?
Tôi cần tải lên một thư mục đầy đủ bằng FTP. Có bất kỳ tùy chọn để chuyển một thư mục và tất cả các nội dung của nó cùng một lúc?
Câu trả lời:
Nếu bạn đang sử dụng máy khách ftp dòng lệnh tiêu chuẩn, MPUT
lệnh sẽ cho phép bạn chuyển tất cả các tệp khớp với mẫu (kiểu vỏ toàn cầu), do đó MPUT *
sẽ gửi tất cả các tệp trong thư mục hiện tại. Ngoài ra còn có MGET
để lấy các tập tin phù hợp với một mẫu.
Theo mặc định, cả hai MPUT
và MGET
sẽ nhắc xem có nên chuyển từng tệp trước khi thực hiện hay không. Bạn có thể muốn tắt lời nhắc bằng lệnh "KHUYẾN MÃI" (không có đối số; đó là một sự thay đổi).
Bạn có thể sử dụng ncftpput. Làm như sau:
Cài đặt ncftp:
yum install ncftp
yum là chữ thường
Cách khác:
apt-get install ncftp
2. Thực hiện lệnh sau:
ncftpput -R -v -u "ftp-username" ftp.website.com ftp-upload-path local-path/*
Sử dụng máy khách FTP như LeechFTP hoặc FileZilla hoặc một cái gì đó tương tự. Nhiều người chửi bới CuteFTP, nhưng đó là phần mềm chia sẻ cuối cùng tôi đã kiểm tra. Tất cả hỗ trợ chuyển toàn bộ thư mục bao gồm cấu trúc thư mục.
Một hướng dẫn đơn giản cho những người mới sử dụng Windows khác như tôi, người sẽ bắt đầu ở đây:
Cách dễ nhất để tải lên toàn bộ thư mục (có tất cả các thư mục con và tệp trong đó) là:
ncftpput -u * yourUserNameHere * -p * yourUserPasswordHere * -R * www.yourWebsite.com * / _C: \ yourFolderDirectoryHere \\ * _(như một dòng).
Lưu ý rằng:
-R
là một lá cờ cho "đệ quy"; nó làm cho lệnh sao chép tất cả các thư mục con theo cách đệ quy/
(dấu gạch chéo) là thư mục gốc của trang web của bạnC:\yourFolderDirectoryHere\*
chọn mọi thứ bên trong C:\yourFolderDirectoryHere
Tôi sẽ đưa ra một câu trả lời - mặc dù đó là lực lượng vũ phu thuần túy và không thanh lịch trong một chút - là điều duy nhất làm việc cho tôi trên dòng lệnh. Tôi đã tạo một danh sách các tệp và đặt chúng vào một tập lệnh:
tạo danh sách các tập tin của bạn:
find my-dir -exec echo "put /Users/username/"{} {} \;
sao chép và dán chúng vào tập lệnh:
#!/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
Kiểm tra này .
Bạn cũng có thể lập trình tạo một thư mục trên máy chủ , sau đó tải tất cả các tệp lên thư mục mới đó.
FileZilla là tuyệt vời cho việc này. Nếu bạn không muốn tải xuống / cài đặt bất cứ thứ gì, điều này có thể được thực hiện với Internet Explorer. Đi vào các tùy chọn nâng cao và chọn Enable FTP folder view (outside of Internet Explorer)
. Sau đó, bạn có thể trỏ một cửa sổ thám hiểm vào máy chủ FTP của mình và kéo và thả các tệp và thư mục giữa các cửa sổ thám hiểm.
Firefox có một trình cắm thêm gọi là FireFtp , một ứng dụng khách đẹp.
Thư mục tiêu là một tệp zip. Bạn có thể sao chép tệp zip đầy đủ vào máy chủ ftp bằng mã bên dưới.
//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);
}
}
Câu trả lời của tôi là biến thể của câu trả lời của @dgig.
Bạn có thể liệt kê tất cả các tệp và lưu chúng (bao gồm lệnh put) vào một tệp:
find my-dir -exec echo "put /Users/username/"{} {} > list.txt \;
và sau đó sử dụng sftp để xử lý tệp:
sftp -C -b sftpbatchfile.txt name@server
-C
là để nén, -b
là cho tập tin bó
sftp
chương trình sử dụng giao thức SFTP đó là một giao thức khác nhau mặc dù nó có một số chữ cái chung. Và bạn đã không chỉnh sửa phần enter code here
còn lại.