查看Fileutils.cp_r
文档,它似乎在shell中使用cp -r
。此命令将忽略空的子目录(至少在我的OS X 10.9机器上)。
有人可以建议一个允许我包含空子目录的解决方案吗?
编辑:我的shell 中的cp -r
实际上复制了空的子目录,所以现在我更加困惑......
答案 0 :(得分:1)
奇怪。它甚至应该复制空目录。我查看了Linux和OSX,在这里你从OSX获得了会话:
% mkdir empty
% ruby -e "require 'fileutils'; FileUtils.cp_r 'empty', 'double'"
% ls -ld double
drwxr-xr-x 2 grych staff 68 Jul 31 17:22 double
答案 1 :(得分:0)
我在Homebrew包管理器中编写了一个文件,结果发现他们的构建环境最后删除了空目录。
答案 2 :(得分:0)
gemspec通常根据git中的可用文件构建:
Gem::Specification.new do |spec|
spec.files = `git ls-files -z`.split("\x0")
end
然而,Git将忽略版本控制中的空目录。
我能够通过向所有空目录添加.keep
文件来解决此问题,包括它们的嵌套空目录,问题已解决。这可以解释你的例子中的shell vs ruby场景。
有关将文件保存在此处的详细信息:Random 'concerns' folders and '.keep' files