linux:如何在给定目录中运行命令

Zom*_*ies 20 linux cron

我只想从给定的目录中运行一个命令(实际上是一个 shell 脚本)作为 cron 作业。如何运行它以便将其设置为给定目录而不使用cd.

Den*_*son 70

只需指定脚本的路径。不需要cd

0 12 * * * /path/to/script args
Run Code Online (Sandbox Code Playgroud)

如果你的脚本会在文件中.,那么你不得不使用cd

0 12 * * * cd /some/dir && /path/to/script args
Run Code Online (Sandbox Code Playgroud)

  • `&&`,如@WillSheppard 链接的答案,会比 `;` 更好,因为 `&&` 只有在上一个命令成功时才运行下一个命令。 (5认同)
  • 另见 http://serverfault.com/questions/290313/how-to-change-directory-in-cron-for-doxygen-code-documentation (2认同)

Dae*_*yth 17

你的问题没有意义。使用cd. 如果您要求不使用答案,cd因为您已经尝试过但它没有用,那么您可能没有在 crontab 中正确输入它。

最简单的方法是编写一个小的 shell 脚本,该脚本将 cd 并运行您的主要任务,然后对脚本进行 cron。

  • 如果您将 cd 放在 crontab 文件中,则必须在每个 crontab 文件中对其进行编辑。我不明白这个问题。也许你可以更全面地解释你想要做什么。 (3认同)