Это странно ... и я не могу понять, почему он так делает.
- У меня есть папка, полная различных 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
.В обоих случаях (копирование и перемещение) исходный и целевой файлы не используются никаким другим процессом.
Кто-нибудь может объяснить это странное поведение?