Поиск по сайту:

Учебное пособие по команде Mktemp с примерами

Мы уже знаем, как создавать файлы определенного размера в Linux. Создание файлов заданного размера может оказаться полезным во многих случаях. Например, после развертывания нового файлового сервера вам может потребоваться проверить предел загрузки, максимальный размер загрузки, скорость загрузки файлов и т. д. В таких случаях вы можете создавать файлы определенного размера и тестировать их на своем файловом сервере. Существует также специальный инструмент командной строки под названием "mktemp" для создания временных файлов и каталогов.

Команда mktemp безопасно создает временный файл или каталог и печатает его имя. Все файлы и каталоги будут сохранены во временной папке системы, т. е. /tmp. Поэтому вам не нужно очищать их вручную. После перезагрузки системы временные файлы исчезнут.

Учебное пособие по команде mktemp

Mktemp является частью пакета GNU coreutils. Так что не заморачивайтесь с установкой. Сейчас мы увидим несколько практических примеров.

Чтобы создать новый временный файл, просто запустите:

mktemp

Вы увидите результат, как показано ниже:

/tmp/tmp.U0C3cgGFpk

Создайте временный файл с помощью команды mktemp.

Как вы видите в выводе, в каталоге /tmp создается новый временный файл со случайным именем "tmp.U0C3cgGFpk". Этот файл — просто пустой файл.

Вы также можете создать временный файл с указанным суффиксом. Следующая команда создаст временный файл с расширением «.txt»:

$ mktemp --suffix ".txt"
/tmp/tmp.sux7uKNgIA.txt

Как насчет временного каталога? Да, это тоже возможно! Чтобы создать временный каталог, используйте опцию -d.

mktemp -d

Это создаст случайный пустой каталог в папке /tmp.

Пример вывода:

/tmp/tmp.PE7tDnm4uN

Создайте временный каталог с помощью команды mktemp.

Все файлы будут созданы с разрешением u+rw, а каталоги – с разрешением u+rwx, без ограничений umask. Другими словами, полученный файл будет иметь разрешения на чтение и запись для текущего пользователя, но не будет разрешений для группы или других лиц. И полученный каталог будет иметь разрешения на чтение, запись и выполнение для текущего пользователя, но не будет разрешений для групп или других лиц.

Вы можете проверить права доступа к файлу с помощью команды «ls»:

$ ls -al /tmp/tmp.U0C3cgGFpk
-rw------- 1 sk sk 0 May 14 13:20 /tmp/tmp.U0C3cgGFpk

Проверьте права доступа к каталогу с помощью команды «ls»:

$ ls -ld /tmp/tmp.PE7tDnm4uN
drwx------ 2 sk sk 4096 May 14 13:25 /tmp/tmp.PE7tDnm4uN

Проверьте права доступа к файлам и каталогам в Linux

Рекомендуем прочитать:

  • Как создавать каталоги из текстового файла в Linux

Создайте временные файлы или каталоги с произвольными именами с помощью команды mktemp.

Как я уже сказал, все файлы и каталоги создаются со случайными именами файлов. Мы также можем создать временный файл или каталог с собственным именем. Для этого просто добавьте как минимум 3 последовательных символа X в конце имени файла, как показано ниже.

$ mktemp ostechnixXXX
ostechnixq70

Аналогично, чтобы создать каталог, просто запустите:

$ mktemp -d ostechnixXXX
ostechnixcBO

Обратите внимание: если вы выберете собственное имя, файлы/каталоги будут созданы в текущем рабочем каталоге, а не в /tmp. В этом случае вам необходимо очистить их вручную.

Кроме того, как вы могли заметить, буквы X в имени файла заменяются случайными символами. Однако вы можете добавить любой суффикс по вашему выбору.

Например, я хочу добавить «блог» в конце имени файла. Следовательно, моя команда будет:

$ mktemp ostechnixXXX --suffix=blog
ostechnixZuZblog

Теперь у нас есть суффикс «блог» в конце имени файла.

Если вы не хотите создавать какой-либо файл или каталог, вы можете просто выполнить пробный прогон, как показано ниже.

$ mktemp -u
/tmp/tmp.oK4N4U6rDG

Для получения помощи запустите:

mktemp --help

Зачем нам вообще нужен mktemp?

Вы можете задаться вопросом, зачем нам «mktemp», если мы можем легко создавать пустые файлы с помощью команды «touch filename». Команда mktemp в основном используется для создания временных файлов/каталогов со случайным именем. Итак, нам не нужно утруждать себя выяснением имен. Поскольку mktemp рандомизирует имена, конфликтов имен не будет. Кроме того, mktemp безопасно создает файлы с разрешением 600(rw) и каталоги с разрешением 700(rwx), поэтому другие пользователи не могут получить к ним доступ. Для получения более подробной информации посетите справочные страницы.

man mktemp

Статьи по данной тематике