Man:Man1/mktemp.1

Матеріал з docs.linux.org.ua — збірника документації з Unix/Linux українською мовою.

Перейти до: навігація, пошук



Зміст

НАЗВА

mktemp - створює тимчасову (унікальну) назву файла

ЗВЕДЕННЯ

mktemp [-q] [-u] зразок

ОПИС

Знаряддя mktemp бере зразок назви файла, і перезаписує частину її, щоб утворити нову назву. Ця назва файла буде унікальною та придатною для використання додатком. Зразком може служити будь-яка назва файла з шістьма X (іксами), як закінчення. Наприклад: /tmp/temp.XXXXXX. Ікси буде замінено на номер поточного процесу і/або унікальною комбінацією літер. Може існувати приблизно 26 ** 6 комбінацій.

Якщо команда mktemp здатна успішно генерувати унікальну назву файла, тоді його буде створено з режимом доступу 0600 (за винятком коли було вказано прапорець -u), і назву файла буде виведено на стандартний пристрій виводу.

Пакети Debian з використанням mktemp у сценаріях підтримки залежать від debianutils >= 1.7.

ОПЦІЇ

Команда розпізнає наступні ключі:

-q
Тихе припинення роботи, якщо сталася помилка. Корисно, коли небажано, щоб сценарій направляв повідомлення про помилку на стандартний пристрій помилок.
-u
Оперує в "ненадійному" режимі. Тимчасовий файл буде вилучено до того, як mktemp припинить роботу. Програма mktemp поводиться трохи краще за функцію mktemp(3), але всерівно може викликати стан перегонів. Використання цієї опції небажане.

ПОВЕРНЕНІ ЗНАЧЕННЯ

Знаряддя повертає 0 при успішному виконанні, і 0 - якщо сталася помилка.

ПРИКЛАДИ

Наступні фрагменти сценаріїв оболонки sh(1) ілюструють просте використання mktemp тоді, коли сценарій має припинити роботу, якщо не може створити безпечного тимчасового файла:

p=`basename $0`
TMPFILE=`mktemp /tmp/$p.XXXXXX` || exit 1
echo "program output" >> $TMPFILE

У наступному прикладі, ми хочемо, щоб сценарій сам виявив помилку:

p=`basename $0`
TMPFILE=`mktemp -q /tmp/$p.XXXXXX`
if [ $? -ne 0 ]; then
    echo "$0: Can't create temp file, exiting..."
    exit 1
fi

Можна також перевірити, чи довжина значення $TMPFILE не є нульовою замість перевірки $?. Це дозволило би пізніше тестування (оскільки $? буде перезаписана наступною командою оболонки).

ВАДИ

Прапорець -d, що використовує mkdtemp(2), не підтримується в Лінуксі.

ІСТОРИЧНА ДОВІДКА

Знаряддя mktemp вперше з'явилося в OpenBSD.

ДИВІТЬСЯ ТАКОЖ

mkstemp(3), mktemp(3), tempfile(1)

Особисті інструменти