我想复制文件从/到远程服务器在不同的目录。 例如,我想一次运行这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
最简单的方法是什么?
我想复制文件从/到远程服务器在不同的目录。 例如,我想一次运行这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
最简单的方法是什么?
当前回答
复制多个目录:
scp -r dir1 dir2 dir3 admin@127.0.0.1:~/
其他回答
你可以这样做:
scp hostname@serverNameOrServerIp:/path/to/files/\\{file1,file2,file3\\}.fileExtension ./
这将把所有列出的文件名下载到您所在的本地目录。
确保每个文件名之间不要有空格,只使用逗号。
复制多个目录:
scp -r dir1 dir2 dir3 admin@127.0.0.1:~/
最简单的方法是
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
serverHomeDir='/home/somepath/ftp/'
backupDirAbsolutePath=${serverHomeDir}'_sqldump_'
backupDbName1='2021-08-27-03-56-somesite-latin2.sql'
backupDbName2='2021-08-27-03-56-somesite-latin1.sql'
backupDbName3='2021-08-27-03-56-somesite-utf8.sql'
backupDbName4='2021-08-27-03-56-somesite-utf8mb4.sql'
scp -i ~/.ssh/id_rsa.pub user@server.domain.com:${backupDirAbsolutePath}/"{$backupDbName1,$backupDbName2,$backupDbName3,$backupDbName4}" .
. -在最后将文件下载到当前目录
我~ / . ssh / id_rsa。Pub -假设您使用.pub密钥建立了服务器的SSH
{file1,file2,file3}的答案仅适用于bash(在远程或本地)
真正的方法是:
scp user@remote:'/path1/file1 /path2/file2 /path3/file3' /localPath