0

我需要在另一台服务器上使用 scp update some directory 。它类似于

for i in /usr/some/???/unknown/dir
do
cp /usr/some/file $i
done

那么当目标目录在其他服务器上时,我该如何进行搜索?

谢谢你

4

4 回答 4

4

每个人都忘记处理文件名中的空格:P

重用 LB 的例子:

OLD_IFS=$IFS
IFS=$\'n'
for i in `ssh user@otherhost find /usr/some -type d -name dir`
do
  scp user@otherhost:"/usr/some/dir/$i" .
done
IFS=$OLD_IFS

这将循环输出的每一行而不是每个单词(并且 $i 被引用)。

于 2009-07-10T21:50:58.763 回答
2
for i in `ssh user@otherhost ls /usr/some/dir/` 
do
 scp user@otherhost:/usr/some/dir/$i .
done
于 2009-07-10T21:18:41.467 回答
1
for i in `ssh user@otherhost find /usr/some -type d -name dir`
do
  scp user@otherhost:/usr/some/dir/$i .
done

我猜这个发现就是你要找的东西......

于 2009-07-10T21:42:32.883 回答
0

如果您在远程服务器上具有 shell 访问权限,请远程创建目录列表(使用 find、ls 或您在 shell 脚本中使用的任何内容),然后将其复制回您要从中复制的系统。然后你可以使用

for d in file_of_remote_dirs; do
    scp /usr/some/file remote_machine:d;
done
于 2009-07-10T21:12:40.993 回答