255 votes

Comment obtenir un répertoire entier en sftp ?

Je viens d'apprendre à 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.

2 votes

Le mode récursif put/get a été ajouté à OpenSSH dans la version 5.4, publiée en 2010. Vous pouvez envisager de mettre à jour vos serveurs car cette version ajoute également de nombreuses corrections de bogues et de meilleures fonctionnalités de sécurité.

2 votes

Wow, sftp est fondamentalement inutile tel quel. lftp aide beaucoup.

13voto

Gowri Points 931

Essayez mget au lieu de get .

Clarification : mget sera fonctionnent si vous êtes à l'intérieur du 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 dans ce répertoire. Cependant, il no Récupérer récursivement le contenu de tous les sous-répertoires.

1 votes

Mget ne fonctionne pas mieux que get pour moi.

2 votes

Obtenir Cannot download non-regular file with this

2 votes

Cela a fonctionné pour moi sur un système où 'get -r' ne fonctionnait pas.

11voto

drkvogel Points 359
get -r [directory]

obtient [directory] et tout ce qui s'y trouve, où r signifie "récursif". J'ai trouvé ça juste en tapant help de sftp .

1 votes

C'est, selon moi, la meilleure réponse à cette question :)

5 votes

Il s'agit d'un duplicata d'une réponse de 29 novembre 2010 (il y a presque un an et demi).

3voto

Aziraphale Points 157

Comme avec cp :

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

Ce qui précède préservera les heures et les modes des fichiers et sous-répertoires d'origine. Ceci est particulièrement utile pour la récupération des sauvegardes.

0 votes

Il s'agit essentiellement d'un duplicata d'une réponse de 29 novembre 2010 (il y a presque deux ans).

0 votes

Ceci est particulièrement inutile si seulement sftp est autorisé.

0voto

YumYumYum Points 1547

J'ai un dossier Java dist sur le serveur distant, dans lequel j'ai l'arbre suivant :

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

Le but est : Je veux utiliser 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

Étape 4. mget *

Étape 5. lcd /tmp/dist/lib

Étape 6. mget *

Étape 7. Enfin, j'ai mon objectif

$ ls
Audio.jar  lib  README.TXT

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X