Utilizzando Ruby, come posso copiare il contenuto di una directory in un'altra? Ad esempio, dato (non-vuoto) directory A e B:Copia il contenuto di una directory in un'altra
A/
bar
foo
B/
jam
jim
voglio copiare tutto dalla A in B, con conseguente:
A/
bar
foo
B/
bar
foo
jam
jim
non posso usare FileUtils.cp_r
perché copia della directory stesso:
irb(main):001:0> require 'fileutils'
#=> true
irb(main):002:0> Dir['**/*']
#=> ["A", "A/bar", "A/foo", "B", "B/jam", "B/jim"]
irb(main):003:0> FileUtils.cp_r('A','B')
#=> nil
irb(main):004:0> Dir['**/*']
#=> ["A", "A/bar", "A/foo", "B", "B/A", "B/A/bar", "B/A/foo", "B/jam", "B/jim"]
C'è una risposta migliore (più breve, più efficiente) rispetto al seguente?
Dir['A/*'].each{ |f| FileUtils.cp(f,"B") }
Mentre le risposte da parte CasualCoder e BTA sono eccellenti per quando si dispone di un elenco di file da copiare verso una destinazione comune, questo è veramente la migliore risposta. (Meno battitura, meno chiamate al metodo.) Buon lavoro per la lettura completa della documentazione. – Phrogz