scp或sftp使用单个命令复制多个文件

我想将文件从/向远程服务器复制到不同的目录中。例如,我想一次运行这4个命令。

scp remote:A/1.txt local:A/1.txt

scp remote:A/2.txt local:A/2.txt

scp remote:B/1.txt local:B/1.txt

scp remote:C/1.txt local:C/1.txt

最简单的方法是什么?

user987654 asked 2019-03-11T03:45:22Z

14个解决方案

305 votes

将多个文件从远程复制到本地:

$ scp your_username@remote.edu:/some/remote/directory/\{a,b,c\} ./

将多个文件从本地复制到远程:

$ scp foo.txt bar.txt your_username@remotehost.edu:~

$ scp {foo,bar}.txt your_username@remotehost.edu:~

$ scp *.txt your_username@remotehost.edu:~

将多个文件从远程复制到远程:

$ scp your_username@remote1.edu:/some/remote/directory/foobar.txt \

your_username@remote2.edu:/some/remote/directory/

资料来源:[http://www.hypexr.org/linux_scp_help.php]

ios.id0 answered 2019-03-11T03:45:52Z

68 votes

从本地到服务器:

scp username@ip.of.server.copyfrom:"file1.log file2.log" "~/yourpathtocopy"

从服务器到本地:

scp username@ip.of.server.copyfrom:"file1.log file2.log" "~/yourpathtocopy"

Gtr_py answered 2019-03-11T03:46:31Z

52 votes

您可以使用-r开关复制整个目录,这样如果您可以将文件隔离到自己的目录中,则可以一次复制所有内容。

scp -r ./dir-with-files user@remote-server:upload-path

scp -r user@remote-server:path-to-dir-with-files download-path

所以举个例子

scp -r root@192.168.1.100:/var/log ~/backup-logs

或者,如果只有少数,您可以使用:

scp 1.txt 2.txt 3.log user@remote-server:upload-path

Jiri Kremser answered 2019-03-11T03:47:09Z

35 votes

正如Jiri所说,您可以使用sftp user@host -b batchFile.txt递归复制文件。 这假设有一个目录包含您要传输的所有文件(没有其他内容)。

但是,如果要从多个不同的目录传输文件,并且目标不相同,则SFTP提供了另一种选择:

sftp user@host << EOF

get /some/remote/path1/file1 /some/local/path1/file1

get /some/remote/path2/file2 /some/local/path2/file2

get /some/remote/path3/file3 /some/local/path3/file3

EOF

这使用“here doc”语法来定义SFTP输入命令序列。 或者,您可以将SFTP命令放入文本文件中并执行sftp user@host -b batchFile.txt

alev answered 2019-03-11T03:47:48Z

14 votes

最简单的方法是

local$ scp remote:{A/1,A/2,B/3,C/4}.txt ./

所以{..}列表可以包含目录(A,B和C这里是目录;“1.txt”和“2.txt”是这些目录中的文件名)。

虽然它会将所有这四个文件复制到一个本地目录中 - 不确定这是否是你想要的。

在上面的例子中,你将把远程文件A / 1.txt,A / 2.txt,B / 3.txt和C / 4.txt复制到一个本地目录,文件名为./1.txt, ./2.txt,./3.txt和./4.txt

Tagar answered 2019-03-11T03:48:35Z

11 votes

{file1,file2,file3}的答案仅适用于bash(在远程或本地)

真正的方法是:

scp user@remote:'/path1/file1 /path2/file2 /path3/file3' /localPath

Vouze answered 2019-03-11T03:49:08Z

10 votes

复制多个目录:

scp -r dir1 dir2 dir3 admin@127.0.0.1:~/

yuliskov answered 2019-03-11T03:49:33Z

9 votes

问题:使用单个SCP命令将多个目录从远程服务器复制到本地计算机,并保留远程服务器中的每个目录。

解决方案:SCP可以轻松完成此任务。 这解决了在使用具有多个文件夹的SCP时多次输入密码的烦人问题。 因此,这也节省了大量时间!

例如

# copies folders t1, t2, t3 from `test` to your local working directory

# note that there shouldn't be any space in between the folder names;

# we also escape the braces.

# please note the dot at the end of the SCP command

~$ cd ~/working/directory

~$ scp -r username@contact.server.de:/work/datasets/images/test/\{t1,t2,t3\} .

PS:由这个伟大的答案激发:scp或sftp使用单个命令复制多个文件

根据评论,这在Windows上的Git Bash中也可以正常工作

kmario23 answered 2019-03-11T03:50:22Z

3 votes

注意:我提前道歉,只回答上述问题的一部分。 但是,我发现这些命令对我当前的unix需求很有用。

将特定文件从本地计算机上载到远程计算机:

~/Desktop$ scp -r your-user-id@remote.host.edu:Public/web/ Desktop/

将整个目录从本地计算机上载到远程计算机:

~/Desktop$ scp -r your-user-id@remote.host.edu:Public/web/ Desktop/

将整个目录从远程计算机下载到本地计算机:

~/Desktop$ scp -r your-user-id@remote.host.edu:Public/web/ Desktop/

fat43r 80ard answered 2019-03-11T03:51:20Z

2 votes

你的命令工作得很完美,但我也希望在将本地发送到远程时更改文件名。 我写了一个命令: - sshpass -p password scp /path/to/file.txt root @ hostname:/path/newfile.txt

但它给出了错误/path/newfile.txt:找不到这样的文件或目录PLZ在这种情况下帮助我

Reshmi K C answered 2019-03-11T03:51:52Z

1 votes

scp remote:"[A-C]/[12].txt" local:

unxnut answered 2019-03-11T03:52:11Z

1 votes

就我而言,我只能使用sftp命令。

所以,我不得不使用带有sftp的批处理文件。 我创建了一个如下的脚本。 这假设您正在/ tmp目录中工作,并且您希望将文件放在远程系统上的destdir_on_remote_system中。 这也适用于非交互式登录。 您需要设置公钥/私钥,这样您无需输入密码即可登录。 根据需要改变。

#!/bin/bash

cd /tmp

# start script with list of files to transfer

ls -1 fileset1* > batchfile1

ls -1 fileset2* >> batchfile1

sed -i -e 's/^/put /' batchfile1

echo "cd destdir_on_remote_system" > batchfile

cat batchfile1 >> batchfile

rm batchfile1

sftp -b batchfile user@host

dminear answered 2019-03-11T03:52:44Z

1 votes

在所有文件具有相同扩展名但具有不同后缀(例如日志文件数)的特定情况下,您将使用以下内容:

scp user_name@ip.of.remote.machine:/some/log/folder/some_log_file.* ./

这将从远程的给定文件夹中复制名为some_log_file的所有文件,即some-log_file.1,some_log_file.2,some_log_file.3 ....

干杯,

家伙

Guy Avraham answered 2019-03-11T03:53:33Z

1 votes

scp使用ssh进行相同身份验证的数据传输,并提供与ssh相同的安全性。

这里的最佳实践是实现“SSH密钥和公共密钥认证”。 有了这个,您可以编写脚本而无需担心身份验证。 就那么简单。

请参阅什么是SSH-KEYGEN

augusto answered 2019-03-11T03:54:13Z

linux sftp一次下载多个文件,scp或sftp使用单个命令复制多个文件相关推荐

  1. linux oracle流复制文件,【学习笔记】Oracle ASM linux dd命令复制asm中文件 操作磁盘或者分区...

    天萃荷净 使用dd复制asm中文件,随着数据库新版本的推广ASM肯定会越来越被重视,最近准备系统的学习下ASM,以备突发情况需要,这是asm深入学习笔记 1.查询ASM某个数据文件AU信息 SQL&g ...

  2. linux远程传文件scp和sftp详解

    一般情况,本地网络跟远程网络进行数据交抱,或者数据迁移,常用的有三种方法,一是ftp,二是wget /fetch 三是,rsync 大型数据迁移用rysync,其次用fetch/wget ,最次是ft ...

  3. linux cp拷贝一个文件到另一个目录,cp命令复制文件夹到另一个文件夹的注意事项 - 翟码农技术博客...

    最近发现之前写好的shell脚本里cp命令拷贝文件夹,丢失了一层文件夹.才发现cp命令里还有一层这么容易让人混淆的用法,为避免继续踩坑,特此记载. 现在假定文件存在的目录如下面所示: --from - ...

  4. win10 android 传多个文件夹,win10怎么使用ROBOCOPY快速复制多个文件夹

    robocopy是一款高级的复制工具,相信大家很少接触过,那么robocopy有什么作用呢?我们可以通过robocopy就可以同时复制多个文件,轻松实现多线程传输文件.那么win10如何使用ROBOC ...

  5. Linux常用命令——复制剪切/创建文件及文件夹/删除

    常用命令

  6. 文件改名,如何将简体中文文件翻译成繁体中文,并复制到指定文件夹里保存。

    需要翻译的文件太多,如何批量将简体中文文件翻译成繁体中文,并将他进行复制到指定的文件夹里进行保存?要如何操作?今天就由小编来教教大家要如何操作. 首先第一步,我们要创建一个新的文件夹方便我们将文件进行 ...

  7. android 扫描重复文件,Android Gradle在APK META-INF中复制的重复文件

    我尝试在我的Android应用程序中添加spring但应用程序不运行. 我真的不知道为什么我的跑步失败了.你能帮我解决这个问题,谢谢 这是我的app / build.gradle配置: apply p ...

  8. linux 切图软件下载,学会23个linux常用命令,不做前端切图仔~

    来源 | https://segmentfault.com/a/1190000021439560 前言一个前端好好切图不好吗?为什么要学 linux 呢? 嗯,真香 ! 1. ls 命令 : 显示目录 ...

  9. linux cp 目录不存在自动创建,关于linux:Linux技巧cp命令自动创建不存在的目录和只复制修改的文件...

    复制时主动创立不存在的子目录 在 Linux 中,能够应用 cp 命令的 --path 选项指定在复制的时候主动创立不存在的子目录. 例如执行上面的命令: $ cp --path java/com/s ...

最新文章

  1. 不要痴迷蓝牙耳机了,出门选这个准没错,99W+人的选择
  2. Aerospike系列:5:安装AMC
  3. mysql插入第一_mySQL教程 第5章 插入 更新与删除数据
  4. IDLE 策略算法 放置奇兵 小破船翻船记录(悬空岛——冒险(航海))
  5. java工程加包_Java工程中添加依赖jar包不起作用问题总结
  6. 计算机视觉招聘_INDEMIND|SLAM、计算机视觉、深度学习算法招聘(社招实习)
  7. Bootstarp4 列表组
  8. 网络配置辅导:多路由器如何使用多条ADSL线路
  9. U盘怎么重装系统到电脑上
  10. 蓝桥杯2017年第八届C/C++省赛B组第四题-方格分割
  11. 树莓派4B使用移远EC20带GPS 4G模块ppp拨号上网
  12. 大数据简历 专业技能内容
  13. excel导入自定义单元格式yyyymd hmmss时间方法
  14. Android平台Camera实时滤镜实现方法探讨(八)--滤镜基本制作方法(二)简单美颜滤镜...
  15. 下一步工作应该怎样开展
  16. Smith预估控制实验 simulink模型
  17. 文档被外泄?如何有效管控文档拷贝行为
  18. Typora下载和使用
  19. python tk文本框_python图形界面tk 1.5 文本框(Text box | Entry)
  20. 计算机应用教学,计算机应用软件教学方法

热门文章

  1. 在线考试题系统设计 MySQL_在线测试试卷智能生成系统的设计与实现
  2. HDU1181 变形课【DFS+关系闭包+bitset】
  3. 理解Java的三大特性之多态
  4. 这些面试的“标准答案”,你都知道吗?
  5. adams打不开提示msc license_关于安装后打不开adams软件的一些解决方法
  6. nvidia相关的主控基操
  7. vue springboot 会员收银系统
  8. 高德地图看各省分界线_高德地图调取行政区域应该注意的一个问题
  9. 抖音、ins、微信功能大比拼——Story的贴纸文字
  10. Termius常用快捷键