Dos maneras
forma recomendada
Puede utilizar las funciones del Archivo Utilidades libary ver here para mover sus archivos, por ejemplo,
mv(src, dest, options = {})
Options: force noop verbose
Moves file(s) src to dest. If file and dest exist on the different disk
partition, the file is copied instead.
FileUtils.mv 'badname.rb', 'goodname.rb'
FileUtils.mv 'stuff.rb', '/notexist/lib/ruby', :force => true # no error
FileUtils.mv %w(junk.txt dust.txt), '/home/aamine/.trash/'
FileUtils.mv Dir.glob('test*.rb'), 'test', :noop => true, :verbose => true
manera traviesa
utilizar el enfoque invertidas (ejecutar cualquier cadena como un comando)
result = `mv "#{@SOURCE_DIR}/#{my_file} #{@DEST_DIR}/#{file}"`
Ok, eso es sólo una variación de la llamada al sistema de comando pero se ve mucho más travieso!
Ok, gracias por todas las respuestas. Si muevo y cambio el nombre del archivo a través del sistema de archivos NFS, ¿qué sucede realmente después de File.rename? ¿File.rename extrae el archivo a mi sistema de archivos local y lo renombra y lo empuja (lo mueve) de regreso a destino o lo renombra en el destino? – Niklas
El servidor remoto NFS es responsable de manejar el cambio de nombre. En lo que respecta a todos los programas locales, el archivo es local, pero el trabajo del controlador NFS es hacer que parezca local. Los archivos nunca se copian localmente para cambiar el nombre o mover operaciones. –