Сайт | Скачать | Видео | Wiki

Автор Тема: Генерация уникального значения (имени)  (Прочитано 976 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Rem50

  • Пользователь
  • **
  • Сообщений: 78
  • Репутация: +1/-0
  • Автор темы
Нужно в сценарии bash сгенерировать уникальное имя для файла.
Как это можно сделать?

Оффлайн RoDoN

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 6286
  • Репутация: +141/-0
Re: Генерация уникального значения (имени)
« Ответ #1 : 02 Апрель 2023, 21:30:56 »
А если использовать выхлоп дата+время ? Или нужно буквенное?
Lenovo G500 (i3-3110M, 8 Гб, Intel + Radeon HD 8570)
PRA 16.12 JWM, Runtu 22.04 x64 XFCE

Оффлайн AZJIO

  • Старожил
  • ****
  • Сообщений: 310
  • Репутация: +10/-0
Re: Генерация уникального значения (имени)
« Ответ #2 : 02 Апрель 2023, 22:08:35 »
Погуглил, в bash есть Random
я уже писал на PureBasic аналогичную функцию TmpFile. там ничего сложного, дописываешь очередной рандомный символ в конец строки например 7 раз и проверяешь существует ли такой же файл, это будет повод выпрыгнуть из цикла генерации имени.
И chr нагуглил, которая используя код числа возвращает её символ. То есть генерируя числа в пределах 65-90 и получая их символ мы получаем рандом из букв a-z.
А не проще ли нагуглить готовую тему, и вот
Гугли "bash уникальное имя файла", там много результатов.
« Последнее редактирование: 02 Апрель 2023, 22:26:54 от AZJIO »

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5356
  • Репутация: +140/-1
Re: Генерация уникального значения (имени)
« Ответ #3 : 02 Апрель 2023, 23:05:46 »
Цитата
TmpFile
Хотел подсказать о mktemp, но подумал, что это слишком специфично. Хотя видел скрипты, где используют и для имен файлов, и для директорий:
Код
$ mktemp
/tmp/tmp.it9uw21uG5
$ mktemp
/tmp/tmp.wtU3OY3haZ
$ mktemp
/tmp/tmp.clH0so635p

Оффлайн knn

  • Ветеран
  • *****
  • Сообщений: 2579
  • Репутация: +33/-0
Re: Генерация уникального значения (имени)
« Ответ #4 : 03 Апрель 2023, 07:14:36 »
- пользую для "одного скрипта" -
дата+время
( "точности до секунды" там считаю достаточным)
------------------------
а с учетом линуксовости можно оглядеться в области '/dev/random--/dev/urandom---/proc/sys/kernel/random/'...
(я практически пока только /dev/random для 'dd-шки' как-то пробовал; а если по-шире - любопытная тема... ))
« Последнее редактирование: 03 Апрель 2023, 07:20:27 от knn »
Gr4D, Grub2; HP Mini 210 VT - Intel Atom N470  @ 1.83GHz, Intel GMA3150, RAM=2 ГБ ;
Sams-n110: N270 - 1,6 ГГц, Intel GMA 950, RAM=2 ГБ.

Оффлайн Rem50

  • Пользователь
  • **
  • Сообщений: 78
  • Репутация: +1/-0
  • Автор темы
Re: Генерация уникального значения (имени)
« Ответ #5 : 03 Апрель 2023, 19:26:56 »
Спасибо.

Оффлайн Rem50

  • Пользователь
  • **
  • Сообщений: 78
  • Репутация: +1/-0
  • Автор темы
Re: Генерация уникального значения (имени)
« Ответ #6 : 05 Апрель 2023, 10:45:57 »
Как использовать /dev/random?

Оффлайн imp

  • cat /dev/ass > /dev/head
  • Ветеран
  • *****
  • Сообщений: 1725
  • Репутация: +49/-1
  • /dev/hands < /dev/ass
Re: Генерация уникального значения (имени)
« Ответ #7 : 05 Апрель 2023, 23:35:50 »
Как использовать /dev/random?
touch $(cat /dev/urandom | tr -dc A-Za-z | head -c8).conf
Создает файл с рандомным именем (8 символов верхнего и нижнего регистра) и расширением .conf
Компьютер имеет то преимущество перед мозгом, что им пользуются.