如何使用Ruby移动文件?

Žel*_*pin 168 ruby file

我想用Ruby移动一个文件.我怎么做?

Ber*_*mir 253

您可以使用FileUtils执行此操作.

#!/usr/bin/env ruby

require 'fileutils'

FileUtils.mv('/tmp/your_file', '/opt/new/location/your_file')
Run Code Online (Sandbox Code Playgroud)

记得; 如果要跨分区移动,"mv"会将文件复制到新目标并取消链接源路径.

  • 实际上mv为你做副本."将文件src移动到dest.如果file和dest存在于不同的磁盘分区上,则会复制该文件." ... http://www.ruby-doc.org/core/classes/FileUtils.html#M004330 (6认同)

pet*_*ter 88

一个老问题,我很惊讶没有人回答这个简单的解决方案.您不需要fileutils或系统调用,只需将文件重命名为新位置即可.

File.rename source_path, target_path
Run Code Online (Sandbox Code Playgroud)

快乐的编码

  • 文件重命名将无法跨分区工作,并引发错误"无效的跨设备链接".在这些情况下,FileUtils是更好的选择,但是对于在同一分区中的简单移动,重命名有效. (11认同)
  • 这肯定不适用于Linux上的分区.我想这取决于底层的OS API.可以肯定的是,只需使用`FileUtils.mv`即可. (3认同)

Žel*_*pin 16

FileUtils.move

require "FileUtils"
FileUtils.move 'stuff.rb', '/notexist/lib/ruby'
Run Code Online (Sandbox Code Playgroud)

  • 关于Ruby的好处是它既有'move`又有`mv`,因此可以选择任何一个.:) (7认同)
  • +1请注意.move是.mv的别名,因此您也应该能够执行FileUtils.mv. (3认同)

小智 11

使用模块'fileutils'并使用FileUtils.mv:

http://www.ruby-doc.org/stdlib-2.0/libdoc/fileutils/rdoc/FileUtils.html#method-c-mv

  • 它最有可能在他发布时存在:) Upvote! (5认同)