Я пишу сценарий MacOS, который должен запускаться с правами администратора (под «sudo»). Скрипту нужна временная папка для хранения временных файлов. К сожалению, под root нет "TMPDIR"! Если я запускаю env, я вижу TMPDIR с хорошим временным путем. Если я запускаю 'sudo env', я не вижу TMPDIR :(. Есть ли способ получить правильный путь к «временной папке» в корневом каталоге?
В общем, вы должны создавать временные файлы, используя функции, предоставляемые библиотекой, и использовать предоставленные имена файлов и / или указатели. На Mac команда mktemp (1) с параметром «-d» должна делать то, что вы хотите.
ИМЯ mktemp - сделать временное имя файла (уникальным)
ОБЗОР mktemp [-dqtu] [-p каталог] [шаблон]
ОПИСАНИЕ Утилита mktemp берет заданный шаблон имени файла и перезаписывает его часть, чтобы создать уникальное имя файла. Шаблон может быть любым именем файла с добавленным к нему числом «X», например /tmp/tfile.XXXXXXXXXX. Если шаблон не указан, по умолчанию используется tmp.XXXXXXXXXX и подразумевается флаг -t (см. Ниже).
Если есть $ TMPDIR, используйте его. В противном случае используйте / tmp (он должен существовать и на Mac).