我需要在另一台服务器上使用 scp update some directory 。它类似于
for i in /usr/some/???/unknown/dir
do
cp /usr/some/file $i
done
那么当目标目录在其他服务器上时,我该如何进行搜索?
谢谢你
我需要在另一台服务器上使用 scp update some directory 。它类似于
for i in /usr/some/???/unknown/dir
do
cp /usr/some/file $i
done
那么当目标目录在其他服务器上时,我该如何进行搜索?
谢谢你
每个人都忘记处理文件名中的空格: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 被引用)。
for i in `ssh user@otherhost ls /usr/some/dir/`
do
scp user@otherhost:/usr/some/dir/$i .
done
for i in `ssh user@otherhost find /usr/some -type d -name dir`
do
scp user@otherhost:/usr/some/dir/$i .
done
我猜这个发现就是你要找的东西......
如果您在远程服务器上具有 shell 访问权限,请远程创建目录列表(使用 find、ls 或您在 shell 脚本中使用的任何内容),然后将其复制回您要从中复制的系统。然后你可以使用
for d in file_of_remote_dirs; do
scp /usr/some/file remote_machine:d;
done