我们在学习Ruby语言的时候,可以知道,它是一款完全面向对象的解释型脚本语言。许多编程人员都将目光投向了它。在这里我们将会了解到Ruby复制文件的一些技巧。#t#
使用net::ssh 库, 可以得到其他机器之间的安全的shell连接, 在其他机器上启动一个cat进程, 并将向要复制的文件写入标准的输入中。
Ruby复制文件代码示例:
- require 'rubygems'
- require 'net/ssh'
- def copy_file(session, source_path,
destination_path=nil) - destination_path ||= source_path
- cmd = %{cat > "#{destination_path.
gsub('"', '\"')}"} - session.process.popen3(cmd) do |i, o, e|
- puts "
- copying #{source_path} to #
{destination_path}… " - open(source_path) { |f| i.write(f.read) }
- puts 'done.'
- end
- end
- net::ssh.start('example.com',
:username=>'leonardr', - :password=>'mypass') do |session|
- copy_file(session, '/home/leonardr/
scripts/test.rb') - copy_file(session, '/home/leonardr/
scripts/"test".rb') - end
- # copying /home/leonardr/scripts/test.
rb to /home/leonardr/scripts/test.rb… - # done.
- # copying /home/leonardr/scripts/"test".
rb to /home/leonardr/scripts/"test".rb… - # done.
以上就是Ruby复制文件的全部方法介绍。