Как проще всего составить список всех пользователей:групп, найденных в архиве?

Проще всего было бы добавить крошечныйsleep:

cmd1 & sleep 1 && cmd2

Более надежным было бы использование оболочки для cmd2, которая удостоверится, что cmd1действительно работает, а затем продолжит работу.

Что-то вроде:

while ! pgrep cmd1; do
    sleep 1
done
cmd2

while !можно заменить на untilКстати.

10
14.10.2019, 22:52
2 ответа

Интересный вопрос. При быстром просмотре справочной страницы (в поисках «пользователя» и, когда это не дало результатов, поиск «владельца» )должен выполнить следующее:

tar xf thetarball.tgz --to-command='sh -c "echo $TAR_UNAME $TAR_GNAME"' | sort | uniq -c

Очевидно, измените сценарий в соответствии с вашими потребностями. Вам могут понадобиться $TAR_UIDи $TAR_GIDвместо имен для некоторых вариантов использования.

Я также рекомендую вам прочитать об опциях --owner-mapи --group-mapдля tar; они звучат так, как будто они могут принести большую пользу вашему варианту использования и будут намного проще, чем создание всех пользователей и групп заранее.

15
27.01.2020, 20:00

Быстросборный:

группы:

tar tvf thetarball.tgz | awk '{print $2}' | cut -d/ -f2 | sort -u

пользователи:

tar tvf thetarball.tgz | awk '{print $2}' | cut -d/ -f1 | sort -u

пары пользователей/групп:

tar tvf thetarball.tgz | awk '{print $2}' | sort -u
7
27.01.2020, 20:00

Теги

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