Geo*_*her 7 ruby copy fileutils
使用FileUtils cp_r
通常是我复制目录的方式,但我似乎无法排除基目录.这是我想要的工作,但它没有:
FileUtils.cp_r "#{source_path}\\**", target_path, :verbose => true
Run Code Online (Sandbox Code Playgroud)
source_path
有我想要递归复制的子目录.我只是不想要实际的source_path
目录,只是它下面的一切.
我尝试过使用Dir.glob
但无法正确使用.
这是一个Windows副本,我知道我可以使用,xcopy
但想知道如何在Ruby中执行此操作.
您想要使用source_path/.
而不是source_path/**
像文档的最后一个示例中所描述的那样
? 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
Run Code Online (Sandbox Code Playgroud)
这就是cp_files.rb的样子:
require 'fileutils'
FileUtils.cp_r "source/.", 'dst', :verbose => true
Run Code Online (Sandbox Code Playgroud)
请使用该FileUtils.copy_entry
实用程序。提供源和目标的完整路径。它将递归地从源复制到目标,不包括源父目录。此方法保留文件类型、cf 符号链接、目录...(尚不支持 FIFO、设备文件等)
用法示例:
src = "/path/to/source/dir"
dest = "/path/to/destination/dir"
preserve = false
dereference_root = false
remove_destination = false
FileUtils.copy_entry(src, dest, preserve, dereference_root, remove_destination)
Run Code Online (Sandbox Code Playgroud)
两者的SRC和DEST必须是一个路径名。src 必须存在,dest 不能存在。
如果preserve 为 true,则此方法保留所有者、组、权限和修改时间。可选使用。
如果dereference_root 为 true,则此方法取消引用树根。可选使用。
如果remove_destination 为 true,则此方法会在复制之前删除每个目标文件。可选使用。
有关更多信息,请查看文档。
归档时间: |
|
查看次数: |
6582 次 |
最近记录: |