@@ -631,16 +631,53 @@ def link_entry(src, dest, dereference_root = false, remove_destination = false)
631
631
end
632
632
module_function :link_entry
633
633
634
+ # Copies files from +src+ to +dest+.
634
635
#
635
- # Copies a file content +src+ to +dest+. If +dest+ is a directory,
636
- # copies +src+ to +dest/src+.
636
+ # If +src+ is the path to a file and +dest+ is not the path to a directory,
637
+ # copies +src+ to +dest+:
637
638
#
638
- # If +src+ is a list of files, then +dest+ must be a directory.
639
+ # FileUtils.touch('src0.txt')
640
+ # File.exist?('dest0.txt') # => false
641
+ # FileUtils.cp('src0.txt', 'dest0.txt')
642
+ # File.exist?('dest0.txt') # => true
643
+ #
644
+ # If +src+ is the path to a file and +dest+ is the path to a directory,
645
+ # copies +src+ to <tt>dest/src</tt>:
646
+ #
647
+ # FileUtils.touch('src1.txt')
648
+ # FileUtils.mkdir('dest1')
649
+ # FileUtils.cp('src1.txt', 'dest1')
650
+ # File.exist?('dest1/src1.txt') # => true
651
+ #
652
+ # If +src+ is an array of paths to files and +dest+ is the path to a directory,
653
+ # copies from each +src+ to +dest+:
654
+ #
655
+ # src_file_paths = ['src2.txt', 'src2.dat']
656
+ # FileUtils.touch(src_file_paths)
657
+ # FileUtils.mkdir('dest2')
658
+ # FileUtils.cp(src_file_paths, 'dest2')
659
+ # File.exist?('dest2/src2.txt') # => true
660
+ # File.exist?('dest2/src2.dat') # => true
661
+ #
662
+ # Keyword arguments:
663
+ #
664
+ # - <tt>preserve: true</tt> - preserves file times.
665
+ # - <tt>noop: true</tt> - does not copy files.
666
+ # - <tt>verbose: true</tt> - prints an equivalent command:
667
+ #
668
+ # FileUtils.cp('src0.txt', 'dest0.txt', noop: true, verbose: true)
669
+ # FileUtils.cp('src1.txt', 'dest1', noop: true, verbose: true)
670
+ # FileUtils.cp(src_file_paths, 'dest2', noop: true, verbose: true)
671
+ #
672
+ # Output:
673
+ #
674
+ # cp src0.txt dest0.txt
675
+ # cp src1.txt dest1
676
+ # cp src2.txt src2.dat dest2
677
+ #
678
+ # Raises an exception if +src+ is a directory.
639
679
#
640
- # FileUtils.cp 'eval.c', 'eval.c.org'
641
- # FileUtils.cp %w(cgi.rb complex.rb date.rb), '/usr/lib/ruby/1.6'
642
- # FileUtils.cp %w(cgi.rb complex.rb date.rb), '/usr/lib/ruby/1.6', verbose: true
643
- # FileUtils.cp 'symlink', 'dest' # copy content, "dest" is not a symlink
680
+ # FileUtils.copy is an alias for FileUtils.cp.
644
681
#
645
682
def cp ( src , dest , preserve : nil , noop : nil , verbose : nil )
646
683
fu_output_message "cp#{ preserve ? ' -p' : '' } #{ [ src , dest ] . flatten . join ' ' } " if verbose
0 commit comments