【问题标题】:How to avoid No such file or directory in linux如何避免在linux中没有这样的文件或目录
【发布时间】:2020-06-24 10:59:30
【问题描述】:

我正在尝试 chmod 到一个文件中。有时它不存在。在这种情况下,我希望它不会出现任何错误。 这意味着 chmod 只有在文件存在的情况下才会执行。

我正在使用gitlab-runner 执行此操作,但它仍然执行shell 脚本,所以这是要从linux 方面解决的问题,而不是从gitlab 解决的问题

这是我尝试做的事情

ssh-publickey:
  stage: ssh-publickey
  script: 
    - pwd
    - mkdir -p ~/.ssh
    - chmod 700 ~/.ssh # i want to check before executing this command
    - sudo chmod 700 ~/.ssh/gitlab.pem
    - echo $PRIVATEKEY > ~/.ssh/gitlab.pem

【问题讨论】:

    标签: linux gitlab-ci gitlab-ci-runner chmod


    【解决方案1】:

    您还可以将 chmod 命令包装在 if 语句中,以在运行之前检查文件/目录是否存在:

    如果 [ -d ~/.ssh ] ;然后 chmod 0700 ~/.ssh ;菲

    【讨论】:

      【解决方案2】:

      您可以使用 chmod 标志 -f 来忽略错误,即如果文件不存在,则不打印错误消息。但是,该命令仍将退出状态为 1,因为它没有找到文件。如果您想避免这种情况并始终获得 0 的状态码,即使该文件不存在,您也可以执行以下操作:

      chmod -f 700 ~/.ssh | :
      

      ":" 是 linux 的空命令,它将以代码 0 退出。

      【讨论】:

        猜你喜欢
        • 2018-04-29
        • 1970-01-01
        • 2022-07-12
        • 1970-01-01
        • 2015-04-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多