我遇到了一个关于SCP (以及rsync)的小问题。我需要将某些文件从服务器A(运行SunOS 5.8)复制到服务器B(运行SunOS 5.10)。
首先,我通过ssh获取文件列表(几百个)并找到
FILES=`ssh user@remote find ./ -name "*.sh" -o -name "*.cbs" -print`
scp -r user@remote:"$FILES" /u01/appl/somedir/ 我的问题是,我想要复制具有相对路径的文件,例如product/11/ora/clean.sh也创建目录结构(结果具有/u01/appl/somedir/product/11/ora/clean.sh)。目前,我只能下载文件,没有创建目录。如您所见,我在scp中使用了-r标志。
发布于 2013-04-02 17:10:28
shell会将构造user@$FILES:“”展开为您不想要的内容。第一个将具有用户@remote:前缀,而其余的则不会。
您可以在SSH上传输tar,因此使用上面的"find“命令构建一个包含文件可能更容易,然后您可以这样做:
find ...stuff... > myfiles
scp myfiles user@remote
ssh user@remote "tar -Imyfiles -cvf - " | tar -C /u01/appl/somedir -xf-你可能会变得诡计多端,把发现和焦油与正确的引用结合起来。
https://unix.stackexchange.com/questions/70894
复制相似问题