Как получить имя каталога в переменной?

Вы можете сначала поместить все параметры в файл, а затем использовать

parallel -a filename command

Например:

echo "--fullscreen $(find /tmp -name *MAY*.pdf) $(find /tmp -name *MAY*.pdf).out" >> /tmp/a 
echo "--page-label=3 $(find /tmp -name *MAY*.pdf) $(find /tmp -name *JUNE*.pdf).out" >> /tmp/a 
echo "--fullscreen $(find /tmp -name *MAY*.pdf) $(find /tmp -name *JULY*.pdf).out" >> /tmp/a 

Затем выполните команду:

parallel -a /tmp/a evince
-1
21.04.2020, 10:22
4 ответа

Если в каталоге /var/backups/dbесть только один подкаталог, то с помощью

set -- /var/backups/db/*/
dirpath=$1

назначит путь к этому каталогу переменной dirpath.

Косая черта в конце шаблона подстановки гарантирует, что шаблон всегда будет соответствовать только каталогам.

Вы также можете установить опцию оболочкиfailglob(shopt -s failglob). Это заставит оболочку генерировать диагностическое сообщение, если шаблон ничему не соответствует. Это дополнительно позволит вам выйти из скрипта в этот момент при сбое:

shopt -s failglob
set -- /var/backups/db/*/ || exit 1
dirpath=$1

После этого фрагмента кода у вас также будет все пути к каталогам в "$@"(, если у вас есть более одного ).

0
19.03.2021, 02:27

Каталог также является строкой (последовательностью символов ).

Вы можете назначить полный каталог переменной следующим образом:

$ basic_dir=/var/backups/db
$ change_dir=db_backup_109245_abc
$ full_dir=$basic_dir/$change_dir
$ echo "$full_dir/"
/var/backups/db/db_backup_109245_abc/
0
19.03.2021, 02:27

Предполагая, что вы можете полагаться на гипотезу:

  • префикс резервной копии всегда "db _резервная копия _"
  • последний каталог резервных копий (тот, который вы ищете, насколько я понимаю, )будет иметь более позднюю дату

, тогда вы можете получить этот путь, используя

backup_path=$(ls -t /var/backups/db/ |grep db_backup_ | head -1)
0
19.03.2021, 02:27

Хорошо, я понял:

BackupDir=$(find /var/backups/db/* -maxdepth 0 -type d)
0
19.03.2021, 02:27

Теги

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