Zwei Möglichkeiten
Empfohlene Weise
Sie können die Funktionen in der Datei Utils verwenden here libary sehen Sie Ihre Dateien
zB bewegen
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
Frech Weg
den Backticks Ansatz verwenden (eine beliebige Zeichenfolge als Befehl ausführen)
result = `mv "#{@SOURCE_DIR}/#{my_file} #{@DEST_DIR}/#{file}"`
Ok, das ist nur eine Variation des System Befehl aufrufen, sieht aber viel unartiger!
Ok, danke für alle Antworten. Wenn ich die Datei über das NFS-Dateisystem verschiebe und umbenenne, was passiert wirklich nach File.rename? Zieht File.rename die Datei in mein lokales Dateisystem und benennt sie um und drückt sie (zurück) zum Ziel oder macht sie den Umbenennungsvorgang am Ziel? – Niklas
Der entfernte NFS-Server ist für die Bearbeitung der Umbenennung verantwortlich. Soweit es alle lokalen Programme betrifft, ist die Datei lokal, aber es ist die Aufgabe des NFS-Treibers, sie so aussehen zu lassen, als wäre sie lokal. Dateien werden nie lokal kopiert, um sie umzubenennen oder zu verschieben. –