Как я могу направить вывод «wget -qO -what.tar.gz» как на tar, так и на sha256sum?

Я столкнулся с той же проблемой, вот как я быстро ее исправил, предполагая, что у вас есть сервер Linux с той же ОС и архитектурой.

  1. Установите программное обеспечение в системе, которой вы управляете

  2. Найдите исполняемый пример which pythonи скопируйте его в~/

  3. Скопируйте библиотеки с помощью:

    ldd "$(which python)"  | grep "=> /" | awk '{print $3}' | xargs -I '{}' cp -v '{}' ~/
    

Перенесите исполняемый файл и библиотеки в другую систему, где у вас есть только локальные привилегии, затем выполните следующее:

mkdir ~/lib
export PATH="$PATH:~/lib"
export LD_LIBRARY_PATH=~/lib:/lib:/usr/lib

Это создаст папку ~/libдля хранения библиотек, добавит ее к вашему пути и укажет LD посмотреть библиотеки там, так что просто добавьте туда свои исполняемые файлы и библиотеки, теперь вы можете запускать их по своему усмотрению. г в другом месте

Это может быть очень хакерским, но это очень портативно, быстро, и я еще не нашел что-то, что я не могу запустить таким образом, конечно, программное обеспечение не может пытаться делать вещи, требующие root-доступа, такие как привязка к более низкий порт, чем 1024 и т. д.

0
03.12.2021, 20:00
1 ответ

Вы можете перенаправить вывод sha256sumна /dev/ttyдля печати на экране, например:

wget -qO- https://go.dev/dl/go1.17.4.linux-amd64.tar.gz|tee >(sha256sum > /dev/tty) |tar -xz

Похоже, что следующий код также работает, просто поместите tar в подстановку процесса и sha256sum после конвейера. На моем компьютере двоичный вывод не выводится на экран.

wget -qO- https://go.dev/dl/go1.17.4.linux-amd64.tar.gz | tee >(tar -xz) | sha256sum

Я понятия не имею, почему это работает или нет, только методом проб и ошибок.

1
03.12.2021, 20:23

Теги

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