使用FileUtils cp_r通常是我如何复制目录,但我似乎无法排除基目录.这是我想要的工作,但它没有:
FileUtils.cp_r "#{source_path}\\**",target_path,:verbose => true
source_path有我想要递归复制的子目录.我只是不想要实际的source_path目录,只需要它下面的所有内容.
我尝试使用Dir.glob但是无法正确使用它.
这是一个Windows副本,我知道我可以使用xcopy,但想知道如何在Ruby中完成它.
解决方法
你想使用source_path /.而不是source_path / **,如
documentation的最后一个例子中所述
➜ fileutils ls cp_files.rb dst source ➜ fileutils tree source source ├── a.txt ├── b.txt ├── c.txt └── deep └── d.txt 1 directory,4 files ➜ fileutils tree dst dst 0 directories,0 files ➜ fileutils cat cp_files.rb require 'fileutils' FileUtils.cp_r "source/.",'dst',:verbose => true ➜ fileutils ruby cp_files.rb cp -r source/. dst ➜ fileutils tree dst dst ├── a.txt ├── b.txt ├── c.txt └── deep └── d.txt 1 directory,4 files
这就是cp_files.rb的样子:
require 'fileutils' FileUtils.cp_r "source/.",:verbose => true