2009-09-12 21:39:59 +0000 2009-09-12 21:39:59 +0000
201
201

Comment obtenir un répertoire entier dans sftp ?

J'apprends à utiliser sftp et je veux copier un répertoire de l'ordinateur distant vers mon ordinateur local. Si j'essaie

get [directory]

, cela me donne cette erreur :

Cannot download non-regular file: /home/mpirocch/Documents

get -R ne fonctionne pas non plus.

Respostas (9)

282
282
282
2010-11-29 21:38:08 +0000

Utilisez le drapeau -r (récursif) :

get -r *
52
52
52
2009-09-12 21:51:06 +0000

Utilisation :

scp -r mpirocch@my-server:/home/mpirocch/Documents Documents
42
42
42
2010-04-08 13:54:47 +0000

Utilisez lftp :

lftp sftp://user@host

Puis, dans lftp, cd dans le répertoire que vous voulez copier, et utilisez la commande mirror pour télécharger récursivement le répertoire sélectionné, comme ceci :

mirror

Cette commande accepte les options et les arguments :

mirror [_OPTIONS_] [_source_ [_target_]]

Par exemple, l'option -R (ou --reverse) lui fera télécharger l'arborescence locale dans le répertoire distant :

mirror -R

Voir la page de manuel de lftp(1) sur le site du projet ou chez Debian. org pour les autres commandes et options.

17
17
17
2014-03-10 01:18:10 +0000

eh bien ce petit guide devrait vous aider, faire un miroir d'un serveur distant vers un dossier local avec lftp

lftp sftp://user:password@server.org:22 -e 'mirror --verbose --use-pget-n=8 -c /remote/path /local/path'

  • sftp:// = utilise le protocole SFTP
  • mirror = mode miroir
  • verbose = montre les fichiers en cours de téléchargement
  • use-pget-n = nombre de segments, vraiment utile pour accélérer les gros fichiers
  • parallel = télécharge les fichiers multiplicateurs en même temps

si vous voulez télécharger des fichiers en parallèle, passez use-pget-n=8 avec --parallel=8

en espérant que cela aidera tous ceux qui ont besoin de mettre en miroir un dossier distant vers un dossier local

15
15
15
2009-09-13 03:11:22 +0000

N'utilisez pas directement le programme sftp si vous pouvez trouver quelque chose de mieux. Pour Linux, de nombreux gestionnaires de fichiers (au moins Nautilus et Dolphin, ceux de GNOME et KDE) supportent sftp en natif, et il y a toujours sshfs. Pour Windows, il y a WinSCP, et probablement autres . Le but de tout cela est de vous permettre d'accéder aux fichiers par sftp comme s'ils étaient dans un système de fichiers normal, de sorte que vous n'ayez pas à vous soucier de savoir si vous y accédez par sftp.

14
14
14
2009-09-12 22:34:42 +0000

Essayez mget au lieu de get.

Clarification : mget fonctionnera si vous êtes dans le répertoire que vous voulez copier ; si vous faites quelque chose comme ceci :

sftp> cd dir_to_get
sftp> mget *

il obtiendra tous les fichiers de ce répertoire. Cependant, il n'obtiendra pas récursivement le contenu des sous-répertoires.

10
10
10
2012-03-06 16:56:09 +0000
get -r [directory]

obtient [directory] et tout ce qu'il y a en dessous, où r signifie récursif. J'ai trouvé cela en tapant help de sftp.

4
4
4
2013-01-11 09:50:29 +0000

Comme pour cp :

scp -rp user@host:/path/to/dir dir

Ce qui précède permettra de préserver les temps et modes des fichiers et sous-répertoires originaux. Ceci est particulièrement utile pour la récupération des sauvegardes.

0
0
0
2011-09-28 08:39:19 +0000

J'ai le dossier dist de Java dans le serveur distant, où j'ai l'arbre suivant :

- dist
--- Audio.jar
--- README
--- lib
----- lib.jar

Goal is : Je veux utiliser le SFTP ? Et les mettre dans /tmp/<>

Étape 1. sftp remoteuser@ip

Étape 2. cd /var/tmp

Étape 2. lmkdir /tmp/dist ; lmkdir /tmp/dist/lib

Étape 3. lcd /tmp/dist

Step 4. mget *

Step 5. lcd /tmp/dist/lib

Step 6. mget *

Step 7. enfin j'ai mon but

$ ls
Audio.jar lib README.TXT