当我尝试使用 sftp 中的命令时get
,收到错误消息,指出它不是普通文件。有没有解决的办法?
答案1
您可以使用目录连接到sftp -r
主机get
。如果连接时忘记使用-r
,可以使用get -r
.
sftp -r me@somehost
或者
sftp> get -r tmp/
Fetching /home/me/tmp/ to tmp
Retrieving /home/me/tmp
/home/me/new.orig.dmp 100% 417KB 416.8KB/s 00:00
/home/me/untangle.dmp 100% 398KB 398.3KB/s 00:00
/home/me/repos.orig.dmp 100% 415KB 415.2KB/s 00:00
/home/me/me-untangle.dmp 100% 32KB 32.4KB/s 00:00
sftp>
如果您想始终确保传递-r
到,请将其添加为您或类似的sftp
别名。~/.bashrc
alias sftp="sftp -r"
从man 1 sftp
-r Recursively copy entire directories when uploading and download‐
ing. Note that sftp does not follow symbolic links encountered
in the tree traversal.
.........
get [-Ppr] remote-path [local-path]
........
If either the -P or -p flag is specified, then full file permis‐
sions and access times are copied too.
If the -r flag is specified then directories will be copied
recursively. Note that sftp does not follow symbolic links when
performing recursive transfers.