0

I'm eriting a MacOS script that need to run under admin rights (under 'sudo'). Script needs a temp folder in order to keep some temp files. Unfortunately, there is no 'TMPDIR' under root! If i run 'env' i see TMPDIR with a nice temp path. If i run 'sudo env' i don't see TMPDIR :(. Is it any way to obtain correct "temp folder" path under root?

grigoryvp
  • 3,655
  • 11
  • 39
  • 59

2 Answers2

2

In general, you're supposed to create temp files using the library-provided functions and use the filenames and/or handles provided. On mac, the mktemp(1) command with the "-d" option should do what you want.

NAME mktemp -- make temporary filename (unique)

SYNOPSIS mktemp [-dqtu] [-p directory] [template]

DESCRIPTION The mktemp utility takes the given filename template and overwrites a portion of it to create a unique filename. The template may be any file- name with some number of `Xs' appended to it, for example /tmp/tfile.XXXXXXXXXX. If no template is specified a default of tmp.XXXXXXXXXX is used and the -t flag is implied (see below).

easel
  • 2,239
  • 2
  • 12
  • 4
1

If there's a $TMPDIR, use it. Otherwise use /tmp (it should exist on Mac too).

user1686
  • 10,162
  • 1
  • 26
  • 42
  • Using /tmp looks fine for me. Is it any official BSD documentation that instructs to use it under root account, or is it a common knowledge? – grigoryvp Jun 01 '09 at 14:40
  • /tmp is just the standard location for temporary files, as defined in http://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard – user1686 Jun 01 '09 at 15:25