Due modi
modo consigliato
È possibile utilizzare le funzioni nel file Utils libary vedere here spostare i file ad esempio
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
modo Spregiudicatezza
utilizzare l'approccio apici inversi (eseguire qualsiasi stringa come un comando)
result = `mv "#{@SOURCE_DIR}/#{my_file} #{@DEST_DIR}/#{file}"`
Ok, questo è solo una variazione di chiamare il comando di sistemama sembra molto più cattivo!
fonte
2010-04-09 09:36:04
Ok, grazie per tutte le risposte. Se si sposta e si rinomina il file su file system NFS, cosa succede realmente dopo File.rename? File.rename estrae il file nel mio file system locale e lo rinomina e lo sposta (sposta) a destinazione o esegue l'operazione di rinomina sulla destinazione? – Niklas
Il server NFS remoto è responsabile della gestione della ridenominazione. Per quanto riguarda tutti i programmi locali, il file è locale ma è compito del driver NFS farlo apparire come se fosse locale. I file non vengono mai copiati localmente per rinominare o spostare le operazioni. –