С помощью lxc list --format=json
вы получаете документ JSON с большим количеством информации обо всех доступных контейнерах.
lxc list mycontainer --format=json
ограничивает это контейнерами, имена которых начинаются со строки mycontainer
(используйте 'mycontainer$'
для точного соответствия).
Разбор JSON, как правило, безопаснее, чем разбор текстового документа почти в произвольной форме.
Чтобы извлечь имена снимков , используя jq
:
$ lxc list mycontainer --format=json | jq -r '.[].snapshots[].name'
Это даст вам список, подобный
2017-04-29-mycontainer
2017-04-30-mycontainer
2017-05-01-mycontainer
Чтобы поместить это в массив в bash
:
snaps=( $( lxc list mycontainer --format=json | jq -r '.[].snapshots[].name' ) )
Просто имейте в виду, что если вы сделаете это, имена снимков со специальными для оболочки символами (*?[
) приведут к подстановке имен файлов. Вы можете предотвратить это с помощью set -f
перед командой (и set +f
после).
Если вы просто хотите перебрать снимки:
lxc list mycontainer --format=json | jq -r '.[].snapshots[].name' |
while read snap; do
# do something with "$snap"
done
Выясните, где установлено новое eclipse
, и введите не просто eclipse
, а полный путь: / где / the / new / eclipse / is / installed / bin / eclipse
Если это новое затмение станет вашим первым выбором, вы можете определить псевдоним в своих файлах запуска (например, .profile
для sh
):
alias eclipse=/where/the/new/eclipse/is/installed/bin/eclipse
Теперь, если вы введете eclipse
, будет запущено новое. Чтобы выполнить старую, вам нужно будет указать ее полный путь.
Вы даже можете определить два псевдонима, по одному для каждого eclipse
:
alias eprolog=/where/the/new/eclipse/is/installed/bin/eclipse
alias eplatform=/where/the/old/eclipse/is/installed/bin/eclipse
... и ввести либо eprolog
, либо eplatform
в приглашении оболочки.