这很奇怪……我终其一生都无法弄清楚为什么会这样。
- 我有一个文件夹,里面装满了各种 CoffeeScript、SASS、HTML 和 XML 文件。
- 我有一个Ruby 脚本,它把它们全部编译,然后将它们压缩成一个主 XML 文件(它用于 iGoogle Gadget 开发)。
- 这个脚本使用命令行参数
trollop
(我只是为了澄清下面的代码)。
- 这个脚本使用命令行参数
- 我希望此脚本将此文件从创建它的当前目录复制到将运行它的目标目录。
到目前为止,构建/编译/缩小步骤就像魔术一样运行。它是#3 无聊到暮光区级别。
#!/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 的路径。源文件就好了。但是,出于某种奇怪的原因,移动文件就像一种魅力。
FileUtils.mv 'build.xml', '/path/to/destination/'
为了增加另一个层次的怪异,如果我只是做一个系统副本,它也会被截断。
system("cp build.xml /path/to/destination")
FWIW,我zsh
从而不是运行这个脚本bash
。在这两种情况下(复制和移动),源文件和目标文件都没有被任何其他进程使用。
任何人都可以解释这种怪异的行为吗?