В чем разница между (*)и («$ (ls )» )?

Если sdb1содержит /EFI/debian/grubx64.efi, то, скорее всего, это системный раздел EFI, и Debian ожидает, что он уже смонтирован в /boot/efi, когда выполняются такие вещи, как update-grub, так что полный путь к Загрузчик Debian будет /boot/efi/EFI/debian/grubx64.efi.

В зависимости от выбора, сделанного во время установки, Debian может одновременно использовать как /boot, так и /boot/efiкак отдельные файловые системы. В этом случае /boot/efiбудет содержать только <mountpoint>/EFI/debian/grubx64.efiи /boot/grub(, то есть каталог <mountpoint>/grubв файловой системе boot)будет содержать grub.cfg, каталог x86_64-efiдля модулей GRUB и другие части GRUB.

3
05.07.2020, 00:12
1 ответ

Первый, (*), объединяет список файлов и каталогов в текущем каталоге и создает список. Вы можете присвоить этот список переменной массива, и каждое имя файла будет отдельной записью.

touch 'a b' c
d=(*)
printf "> %s <\n" "${d[@]}"
> a b <
> c <

Второй, (“$(ls)”), вызывает lsдля отображения текущего каталога. Результирующий список файлов и каталогов помещается в одну строку и присваивается списку. Список содержит этот единственный элемент, состоящий из набора имен, разделенных символом новой строки -.

d=("$(ls)")
printf "> %s <\n" "${d[@]}"
> a b
c <

Первый вариант лучше, так как имена файлов размещаются правильно в отдельных элементах списка, а разбор вывода lsчасто чреват неожиданными осложнениями

5
18.03.2021, 23:22

Теги

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