ruby系统调用cp:丢失后的目标文件操作数

时间:2014-10-16 18:29:54

标签: ruby scripting terminal

我在ruby脚本中有类似的内容:

from = "/path/to/script.rb"
to = "/path/to/destination/"
puts "Copying #{from} to #{to}"
system("cp #{from} #{to}")

这在终端中提供以下输出:

copying /path/to/script.rb 
 to /path/to/destination/
cp: missing destination file operand after ‘/path/to/script.rb’
Try 'cp --help' for more information.

我在终端中运行以下内容没有问题:

cp /path/to/script.rb /path/to/destination

也不在ruby脚本中:

system("cp /path/to/script.rb /path/to/destination")

如何更好地解决我的脚本或指向正确方向的任何建议将非常感激。

1 个答案:

答案 0 :(得分:2)

我正在读取文件,而不是修剪换行符。这个应该从终端输出中显而易见(注意换行符和'到'之前的空格)。

改变自:

files = []
File.open(file-of-paths).read.each_line do |line|
 files.push(line)
end 

以下解决了这个问题:

files = []
File.open(file-of-paths).read.each_line do |line|
 files.push(line.chomp)
end