Unix'te mput kullanarak birden çok klasörü başka bir sunucuya nasıl FTP yoluyla gönderebilirim?


18

Bir sunucuda (Putty kullanarak) oturum açtım. oradan FTP kullanarak başka bir sunucuya bağlanıyorum. Mput kullanarak birinci sunucudan ikinci sunucuya birkaç klasör kopyalamak istiyorum.

Sevmek:

ftp> mput folder1 folder2 folder3

Ama "klasör1: düz bir dosya değil" ... alıyorum. Bu klasörlerin her birinin alt klasörleri, dosyaları vardır (bazıları ikili, bazıları değil).

Eşyaları sıkıştırmadan ve sonra aktarmadan istediğimi nasıl başarabilirim?

Yanıtlar:


19

Komut satırı FTP oldukça ilkel.

Uzak bir siteye tekrar tekrar dosya / klasör gönderemezsiniz.

Uzak tarafta bir dizin yapısını yerelle aynı şekilde yeniden oluşturmak istiyorsanız, mkdirher yolu manuel olarak oluşturmanız ve mput *bu dizindeki her şeyi uzak tarafa göndermek için kullanmanız gerekir.

Bunu kolaylaştırmak için iki seçenek:

  1. İlkel FTP komutunu kullanmayı bırakın (ncftp iyi bir alternatiftir)

  2. Klasörleri tarlamak, dosyayı göndermek ve uzak tarafa çıkarmak için tar kullanın.


1
Tar-> put-> untar
dave

1
-1 Çünkü soru, "Öğeleri sıkıştırmadan ve sonra aktarmadan ne istediğimi nasıl başarabilirim?" Sorusunu sorar, bu da kişinin uzak makineye kabuk erişimi olmadığını gösterir.
Steen Schütt

11

Mput özyineleme kullanmadığından normal ftp programı ile bu mümkün değildir. Ncftp komutunu kullanabilir ve 'mput -r folder' komutunu çağırabilirsiniz.

En iyi dileklerimle, Fabian


Tam olarak bir RHEL 5 kutusunda yaptığım şey tam olarak bu. EPEL paketinde, yürütülebilir dosya ncftpput olarak adlandırılır.
Bastırma

Sunucunun yapılandırmasındaki hiçbir şey değiştirilemez. Ben sadece bir kullanıcıyım ...

Müşterinize bağlıdır. Sunucuda değil.
halfdan

Bunu bu şekilde yapmayı tercih ederim. Teşekkür ederim.
Mojtaba Rezaeian

11

Bir bash senaryosu yaptım:

#!/bin/bash
ftp_site=ftp.yoursite.net
username=my_user_name
passwd=my_password
remote=/path/to/remote/folder
folder=$1
cd /path/to/local/folder/$folder
pwd
ftp -in <<EOF
open $ftp_site
user $username $passwd
mkdir $remote/$folder
cd $remote/$folder
mput *
close
bye

ve ile çağırdı

find . -type d -exec ./recursive-ftp.sh {} \;

işe yarıyor gibi görünüyor.


0

Güvenli Kopyalama scp, yararlı bulabileceğiniz bir -r özyinelemeli bayrak içerir.


Soru basit ftp erişimi hakkında .. değil scp / sftp!
Mojtaba Rezaeian

-1

powershell cd'sini yüklemek istediğiniz dizine açın ve aşağıdaki komutları çalıştırın:

1. gci -r | % {if ($_.PSIsContainer) {$t = $((($_.fullname -split "\\")[$(((pwd) -split "\\").length)..200]) -join "/"); "mkdir ""$t""`r`nmput ""$t/*"" ""$t"""}} | sc .\mput_all
2. notepad .\mput_all

Sonuçları ftp pencerenize yapıştırın. Zevk almak. Ayrıca tüm dosyaları temel dizinden aktarmak için mput * eklemeyi unutmayın.


6
PowerShell ne zamandan beri bir Unix sisteminde çalışıyor?
Michael Hampton
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.