FTP kullanarak tam bir klasör yüklemem gerekiyor. Bir klasörü ve tüm içeriğini bir kerede aktarmak için herhangi bir seçenek var mı?
FTP kullanarak tam bir klasör yüklemem gerekiyor. Bir klasörü ve tüm içeriğini bir kerede aktarmak için herhangi bir seçenek var mı?
Yanıtlar:
Standart bir komut satırı ftp istemcisi kullanıyorsanız, MPUT
komut bir (kabuk glob stili) desenle eşleşen tüm dosyaları aktarmanıza izin verir, böylece MPUT *
tüm dosyaları geçerli dizine gönderir. MGET
Bir modelle eşleşen dosyaları almak için de vardır .
Varsayılan olarak, her ikisi de MPUT
ve MGET
bunu yapmadan önce her dosyanın aktarılıp aktarılmayacağını soracaktır. Muhtemelen "PROMPT" komutuyla bilgi istemini kapatmak isteyebilirsiniz (tartışma yok; bu bir seçimdir).
Ncftpput kullanabilirsiniz. Aşağıdakileri yapın:
Ncftp'yi kurun:
yum install ncftp
yum küçük harflidir.
Alternatif:
apt-get install ncftp
2. Aşağıdaki komutu yürütün:
ncftpput -R -v -u "ftp-username" ftp.website.com ftp-upload-path local-path/*
LeechFTP veya FileZilla gibi bir FTP istemcisi veya benzeri bir şey kullanın. Pek çok insan CuteFTP tarafından yemin ediyor, ama kontrol ettiğim son yazılım. Tüm destek dizin yapısı da dahil olmak üzere tüm bir klasörü aktarma.
Burada benim gibi diğer Windows yenileri için basit bir eğitim:
Tüm bir klasörü yüklemenin en kolay yolu (tüm alt klasörlerde ve dosyalarda):
ncftpput -u * kullanıcı AdınızHere * -p * kullanıcıKullanıcıŞifreHere * -R * www.yourWebsite.com * / _C: \ yourFolderDirectoryHere \\ * _(bir satır olarak).
Bunu not et:
-R
"özyinelemeli" için bir bayraktır; komutu tüm alt klasörleri yinelemeli olarak kopyalar/
(eğik çizgi) web sitenizin kök dizinidirC:\yourFolderDirectoryHere\*
içindeki her şeyi seçer C:\yourFolderDirectoryHere
Komut satırında benim için çalışan tek şey - saf kaba kuvvet olsa ve en ufak olarak zarif olmasa da - bir cevap sunacağım. Dosyaların bir listesini oluşturdum ve onları bir komut dosyasına koydum:
dosya listenizi oluşturun:
find my-dir -exec echo "put /Users/username/"{} {} \;
bunları kopyalayıp komut dosyasına yapıştırın:
#!/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
Kontrol Şuna .
Ayrıca programlı olarak sunucuda bir klasör oluşturabilir ve ardından tüm dosyaları bu yeni klasöre yükleyebilirsiniz.
FileZilla bunun için harika. Bir şey indirmek / yüklemek istemiyorsanız, Internet Explorer ile yapılabilir. Gelişmiş seçeneklere gidin ve öğesini seçin Enable FTP folder view (outside of Internet Explorer)
. Ardından, FTP sunucunuzda bir gezgin penceresini işaret edebilir ve gezgin pencereleri arasında dosya ve klasörleri sürükleyip bırakabilirsiniz.
Hedef dir bir zip dosyasıdır. Aşağıdaki kodu kullanarak tam zip dosyasını ftp sunucusuna kopyalayabilirsiniz.
//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);
}
}
Benim cevabım @dgig'in cevabının bir çeşididir.
Tüm dosyaları listeleyebilir ve (put komutu dahil) bir dosyaya kaydedebilirsiniz:
find my-dir -exec echo "put /Users/username/"{} {} > list.txt \;
ve sonra dosyayı işlemek için sftp kullanın:
sftp -C -b sftpbatchfile.txt name@server
-C
sıkıştırma içindir, -b
toplu iş dosyası içindir
sftp
Program ortak olan bazı harfler olmasına rağmen farklı bir protokoldür SFTP protokolünü kullanır. Ve enter code here
artıkları düzenlemediniz .