Как объединить результаты подстановки команд?

I tried remounting but always rights (RO or RW) propagate automatically between separate mountpoints.

Если вы прочитаете очень длинную документацию вman mount(или продолжите поиск «только для чтения -» ), вы поймете, что это неверно при использовании монтирования с привязкой.

Чтобы изменить статус отдельной точки монтирования «(Запись VFS )», в отличие от «исходного суперблока файловой системы», вы должны перемонтировать ее с включенной опцией bind.

Я очень рад сообщить, что это сработало для меня, независимо от того, была ли исходная точка монтирования создана с использованиемbind.

Я предлагаю следующую последовательность.

mount -oremount,bind,ro /
mount -oremount,rw /

mount -o bind,rw / /mnt/rootfs

# OR - this should have the same effect as the last command
mount -t ubifs -o rw /dev/ubi0_1 /mnt/rootfs

findmntпокажет общее, эффективное состояние-roилиrw-каждой точки монтирования в отдельности.

0
10.08.2019, 23:29
3 ответа

Немного глупо получать список mp3-файлов, передавать их в echo, чтобы он мог распечатать их, разделенные пробелами, затем передавать этот вывод по каналу, читать его, разделять на пробел/табуляцию/новую строку/NUL, а затем присоединиться к |.

Либо делай:

printf '%s|' *.mp3

Или

files=(*.mp3)
joined=${(j:|:)files}

Если цель состоит в том, чтобы использовать его в качестве шаблона zsh, вы, вероятно, захотите экранировать подстановочные знаки в именах этих файлов. Это делается с помощью флага раскрытия параметра b:

.
pattern="(${(j:|:)${(b@)files}})"
4
28.01.2020, 02:17

Я нашел один способ сделать это, но он все еще довольно запутан для такого простого варианта использования:

echo ${(j:|:)"${(@f)$(print -l *.mp3)}"}

0
28.01.2020, 02:17

Вы можете использовать set, чтобы объединить эти файлы в позиционные параметры, а затем "$*", чтобы расширить их с помощью желаемого разделителя полей:

set -- *.mp3
(IFS=\|; echo "$*")

Обратите внимание, что это делается в подоболочке, поэтому изменения в IFS не влияют на вашу текущую оболочку.

0
28.01.2020, 02:17

Теги

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