如果目录中有 space,则在 ruby 中执行复制目录的 shell 脚本时出错

Error while executing shell script of copiying a directory in ruby if the directory is having a space in it

假设我有一个名为 'test folder' 的目录,当我尝试使用 ruby 脚本复制它时它抛出了一个错误。

这是我尝试过的:

irb(main):001:0>`cp -R test\ folder folder`


输出:


usage: cp [-R [-H | -L | -P]] [-fi | -n] [-apvX] source_file target_file cp [-R [-H | -L | -P]] [-fi | -n] [-apvX] source_file ... target_directory => ""

将文件夹名称放在撇号中应该适合您:

`cp -R 'test folder' folder`

但是更 ruby 风格的方法是使用 FileUtils.cp_r:

require 'fileutils'
FileUtils.cp_r 'test folder', 'folder'

这两种方法都会将 test folder 复制到 folder 因此会在 folder 下创建一个 test folder 子目录=].如果您只想复制 test folder 内容 ,请在命令中使用 'test folder/.' 而不是 'test folder'