gpt4 book ai didi

ruby - 如何递归复制目录内容并排除源目录本身?

转载 作者:数据小太阳 更新时间:2023-10-29 06:58:28 25 4
gpt4 key购买 nike

使用 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/.", 'dst', :verbose => true

关于ruby - 如何递归复制目录内容并排除源目录本身?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19391133/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com