我可以更改执行cron任务的根路径吗?

时间:2014-08-18 04:04:06

标签: shell cron crontab

我有一个shell脚本(这里的玩具示例):

它在当前目录中创建一个文件:

#! /usr/bin/sh
touch ./toy
touch ./doll
touch ./boy
touch ./kuky
touch ./beer

这个shell放在一条很深的路径上:/somewhere/which/is/in/a/huge/path/tree/maze

但是当我使用crontab执行该shell脚本时,毫无疑问它会在~/下创建这些文件。

所以这意味着如果我想在/somewhere/which/is/in/a/huge/path/tree/maze上创建这些文件,我必须在每次触摸命令后添加这条长路径。在这种情况下五条长路。阅读灾难。

但是,如果我可以更改执行此shell的根文件,我将只需要脚本或crontab中的一个这样的路径。

有办法吗?

2 个答案:

答案 0 :(得分:1)

更改目录:

#!/bin/sh
cd /somewhere/which/is/in/a/huge/path/tree/maze
...

或使用变量:

dir="/somewhere/which/is/in/a/huge/path/tree/maze"
touch "$dir/toy"
...

答案 1 :(得分:0)

在我的debian crontab中,我有这个条目:

17 * * * * root cd / && run-parts --report /etc/cron.hourly

我需要告诉更多吗?