0

我有带有这段代码的 deploy.rb 文件:

after :deploy do
  run "if [ -d #{rails_root}/tmp/pids ]; then mkdir #{rails_root}/tmp/pids && chmod 0777 #{rails_root}/tmp/pids; fi"
end

有问题,可以看@终端截图: 在此处输入图像描述

同样的麻烦是与日志目录,但它只是从 git repo 克隆(通过 capistrano)。当我手动克隆项目时 - 日志目录运行良好。 在此处输入图像描述

两个问题:

  1. 什么是 pids/log “目录”,如果它不是文件或目录或其他东西?
  2. 我该如何解决这个麻烦?
4

1 回答 1

1

几个建议:

man test节目

-d file       True if file exists and is a directory.

所以你可能是说如果 [ !-d xxx/tmp/pids];

为了更容易试用,只需在临时目录中运行 shell 命令:

if [ ! -d xxx/tmp/pids ]; then mkdir xxx/tmp/pids && chmod 0777 xxx/tmp/pids; fi

如果路径更远的目录不存在,则 mkdir 失败 - 使用 mkdir -p

if [ ! -d xxx/tmp/pids ]; then mkdir -p xxx/tmp/pids && chmod 0777 xxx/tmp/pids; fi

那应该做你想要的。

(屏幕截图很难破译。如果您想获得有关文件类型的更多信息,请使用ls -l此处的文本输出而不是主要显示您的背景图像的屏幕截图...)

于 2012-07-29T10:10:33.747 回答