Учебное пособие по команде 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