Не получается, потому что /usr/bin/java
- это файл, а не каталог.
Вы можете сделать:
cd "$(dirname "$(which java)")"
Или использовать расширение параметров в zsh
:
cd "${"$(which java)"%/*}"
Почти каждый объект AWS включает идентификатор учетной записи. Например, мой пользователь IAM — это arn :aws :iam ::АККАУНТ _ID :user/Andrew.Lorien, а идентификатор одного из моих стеков cloudformation — arn :aws :. ] cloudformation :us -west -2 :АККАУНТ _ID :stack/my -репозиторий/12345678 -90ab -cdef -1234 -567890abcdef. Таким образом, вы можете запросить все, что у вас есть, и извлечь из этого идентификатор. Вот bash one -лайнер, который получает первого пользователя IAM (строку вида arn :aws :iam ::АККАУНТ _ID :пользователь/ПОЛЬЗОВАТЕЛЬ _ИМЯ )и извлекает идентификатор учетной записи.
aws iam list-users --query "Users[0].Arn" --output text | cut -d ":" -f 5
Это правильный путь:
~ $ aws sts get-caller-identity
{
"Account": "123456789012",
"UserId": "AIDABCDEFGHJKL...",
"Arn": "arn:aws:iam::123456789012:user/some.user"
}
Это работает для пользователей IAM, ролей IAM между учетными записями -, ролей IAM EC2 и т. д.
Используйте вместе с jq
, чтобы получить только идентификатор учетной записи:
~ $ aws sts get-caller-identity | jq -r.Account
123456789012