使用move命令在Ruby中移动文件

时间:2015-08-04 23:08:09

标签: ruby

我正在尝试执行一个非常简单的mv命令。有人可以告诉我下面的代码有什么问题吗?

src="xyz_*.bak"
dest = "xyz"

FileUtils.mv Dir.glob("#{curr}"+'/'+"#{src}"), "#{dest}"

我看到以下错误: Errno::ENOENT: No such file or directory - /home/dir/src/lib/util/xyz_abc_1.bak or xyz/xyz_abc_1.bak

我仔细检查了xyz_abc_1.bak文件。

1 个答案:

答案 0 :(得分:0)

忽略当前目录,不要求包含它,因为所有变量都已经是字符串,所以也可以简化它。

一点点验证应该会产生更有用的结果。

require 'fileutils'
pattern = "my_temp*.bak"
dest = "tmp_dest"
located_files = Dir.glob(pattern)
if located_files.length == 0
     abort("ERROR: Unable to locate files given by #{pattern} in #{Dir.pwd}") 
end

if Dir.exists? dest
    FileUtils.move located_files , dest
else
    abort("ERROR: #{dest} directory does not exist")
end