首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FileUtils.cp : FileUtils.mv截断文件;FileUtils.mv没有吗?

FileUtils.cp : FileUtils.mv截断文件;FileUtils.mv没有吗?
EN

Stack Overflow用户
提问于 2011-06-23 19:24:56
回答 1查看 929关注 0票数 2

这是奇怪的…我不知道为什么它会这样做。

  1. --我有一个装满了各种CoffeeScript、SASS、HTML和XML文件的文件夹,
  2. --我有一个Ruby脚本,它将它们全部下载、编译,并将它们缩小为一个主XML文件(用于iGoogle Gadget开发)。这个脚本使用命令行args使用below).

(我声明这只是为了澄清我的代码

  • )

  1. 我希望这个脚本将这个文件从创建它的当前目录复制到将运行它的目标目录中。

到目前为止,构建/编译/缩小步骤就像魔法一样运行。它的3号是边缘到暮光区的水平。

代码语言:javascript
复制
#!/usr/bin/ruby
…
if opts[:deploy_local]
  FileUtils.cp 'build.xml', '/path/to/destination/'
  puts "Copied #{written_file_name} to #{output_destination}." if opts[:verbose]
end

当复制该文件时,目标文件将被截断,其长度约为该文件的3/4。源文件很好。然而,由于一些奇怪的原因,移动该文件就像一个魅力

代码语言:javascript
复制
  FileUtils.mv 'build.xml', '/path/to/destination/'

为了增加另一个奇怪的级别,如果我只是做一个系统副本,它也会被截断。

代码语言:javascript
复制
  system("cp build.xml /path/to/destination")

FWIW,我是从zsh而不是bash运行这个脚本的。在这两种情况下(复制和移动),任何其他进程都不使用源文件和目标文件。

有人能解释一下这种奇怪的行为吗?

EN

回答 1

Stack Overflow用户

发布于 2011-12-03 17:59:13

有几件事:

  • 您要移动到同一个磁盘卷吗?如果是这样的话,那么,是的,cam关于原子性的评论肯定是正确的;操作系统可能只是在移动过程中处理inode表,而不是写出数据。如果您要在卷之间移动数据,那么就不会那么简单了。
  • 您是否尝试过传递

:详细的=>真

到FileUtils.cp命令中?这可能会对故障进行诊断。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6459553

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档