Как создать несколько файлов/каталогов с рандомизированными именами?

Моя система немного датирована, Fedora 14, таким образом, у меня нет той группы, но у меня действительно есть эта группа, "Печатающая Поддержку", но я полагаю, что мои примеры все еще относятся к Вашему вопросу.

Как Вы уже упомянули, можно использовать команду yum groupinfo <group name> узнать то, какие пакеты обеспечиваются конкретной группой. Относительно установки их я предположил бы, что необходимо установить все "Обязательные" и пакеты "По умолчанию". Это могло быть сделано как так.

yum.conf параметр, group_package_types средства управления, какие типы установлены.

выборка man yum.conf

group_package_types List of the following: optional, default, mandatory. 
   Tells yum which type of packages in groups will be installed when 
   'groupinstall' is called.   
   Default is: default, mandatory

Пример

Вы могли выполнить эти команды для получения списка пакетов:

Обязательный

$ yum groupinfo "Printing Support" | paste -s -d ' '| \
        grep -oP '(?<=tory Packages:\s{4}).*(?=Default Packages:\s+)' | \
        sed 's/[\t ]\+/ /g'
cups ghostscript ghostscript-cups 

Значение по умолчанию

$ yum groupinfo "Printing Support" | paste -s -d ' '| \
        grep -oP '(?<=Default Packages:\s{4}).*(?=Optional Packages:\s+)' | \           sed 's/[\t ]\+/ /g'
bluez-cups cups-pk-helper foomatic foomatic-db-ppds foomatic-filters gutenprint gutenprint-cups hpijs hplip mpage paps printer-filters samba-client system-config-printer system-config-printer-udev 

Вы могли затем сохранить эти 2 команды в 2 переменных:

$ mpkgs=$(yum groupinfo "Printing Support" ....)
$ dpkgs=$(yum groupinfo "Printing Support" ....)

И затем выполненный yum как так:

$ yum install -y $mpkgs $dpkgs

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

3
25.07.2017, 19:30
3 ответа

Самый простой способ найти:

touch $(paste -d '.' <(printf "%s\n" File{001..005}) \
                    <(printf "%s\n" {000..004}))

Это создаст

File001.000  File002.001  File003.002  File004.003  File005.004

, чтобы понять, как это работает, посмотрите, что каждая команда печатает:

$ printf "%s\n" File{001..005}
File001
File002
File003
File004
File005

$ printf "%s\n" {000..004}
000
001
002
003
004

$ paste -d '.' <(printf "%s\n" File{001..005}) \
>              <(printf "%s\n" {000..004})
File001.000
File002.001
File003.002
File004.003
File005.004

Итак, все вместе, они расширяются до

touch File001.000 File002.001 File003.002 File004.003 File005.004 

Создание 5 файлов со случайными именами намного проще:

$ for i in {1..5}; do mktemp File$i.XXX; done
File1.4Jt
File2.dEo
File3.nhR
File4.nAC
File5.Fd8

Для создания 5 файлов со случайными 5 именами алфавитных символов и случайных расширений вы можете использовать это:

 $ for i in {1..5}; do 
    mktemp $(head -c 100 /dev/urandom | tr -dc 'a-z' | fold -w 5 | head -n 1).XXX
   done
jhuxe.77b
cwvre.0BZ
rpxpp.ug1
htzkq.f9W
bpgor.Bak

Наконец-то, чтобы создать 5 файлов со случайными именами и отсутствия расширений, использование

$ for i in {1..5}; do mktemp -p ./ XXXXX; done
./90tp0
./Hhn4U
./dlgr9
./iVcn4
./WsJIx
4
27.01.2020, 21:11

Я нашел простой способ создания файлов, а также каталогов со случайными именами и расширениями:

Для создания случайных файлов со случайными расширениями используйте эту команду:

$ mktemp XXX.$(mktemp -u XXX)
-u, --dry-run
    do not create anything; merely print a name (unsafe)

И для создания нескольких файлов используйте вышеприведенную команду внутри цикла:

$ for create in $(seq 5); do
      mktemp XXX.$(mktemp -u XXX);
  done

nDq.NoB
mT2.Ns0
DEN.aga
K7b.HCf
pNC.q9N

И, наконец, если Вы хотите создать несколько каталогов, используйте mktemp с его опцией -d.

mktemp -d XXX.$(mktemp -u XXX)
2
27.01.2020, 21:11

Если вы хотите , гарантируют , что они разные, посмотрите MKTEMP :

$ mktemp 
/tmp/tmp.r8FumWPhn5
$ mktemp XXXXXXXX.tmp
Pu4Ii6Sf.tmp
2
27.01.2020, 21:11

Теги

Похожие вопросы