+ -
当前位置:首页 → 问答吧 → find + scp 怎么实现

find + scp 怎么实现

时间:2011-04-25

来源:互联网

远程server上有这样的目录(目录含空格),
/home/data/aa bb
/home/data/aa cc
/home/abc de

要在这个目录list里找出+90天的文件,scp到本地。 两台机器已加ssh信任关系。
因为目录含有空格,废了半天力气shell也不能行。

用perl能解决否?

作者: 饭碗儿   发布时间: 2011-04-25

server不能ssh到本地,因为本机端口未开。
只能 scp  server:/home /local_data/
这种方式的scp

作者: 饭碗儿   发布时间: 2011-04-25

scp /home/data/aa\ bb /local_data

作者: longbow0   发布时间: 2011-04-25

本帖最后由 sclouder 于 2011-04-25 10:25 编辑

使用shell是可以实现你所要的功能的,参见下面这个例子:

dbconsole.cm3:/home/oracle>$ls -l "a b"
-rw-r--r--  1 oracle dba 0 Apr 25 10:09 a b
dbconsole.cm3:/home/oracle>$find . -name "a b" -exec scp {} dw079005.cm4:~ \;
a b                                                                                                                                  100%    0     0.0KB/s   00:00


对不起,楼主所说的从远程scp到本地确实无法使用这种方式

作者: sclouder   发布时间: 2011-04-25

使用以下的命令是可以做到这点的,双引号+转义符。这里需要说明以下,仅双引号或者仅转义符都无法解决楼主的问题。
scp dw079001.cm4:"/home/oracle/a\ b/c" ./

作者: sclouder   发布时间: 2011-04-25