Skip to content

Instantly share code, notes, and snippets.

@discordianfish
Created October 27, 2022 10:49
Show Gist options
  • Save discordianfish/aad8062ef0a8ca7d56dd8f34ec24c526 to your computer and use it in GitHub Desktop.
Save discordianfish/aad8062ef0a8ca7d56dd8f34ec24c526 to your computer and use it in GitHub Desktop.
Script to copy binaries including their dynamically linked libraries to a target directory, useful for creating minimal container/docker images
#!/bin/bash
set -euo pipefail
BIN=$1
TARGET=$2
mkdir -p "$TARGET"
bundle() {
lib="$1"
target="$2"
dir=$(dirname "$lib")
mkdir -p "$target/$dir"
cp -a "$lib" "$target/$dir/"
while [[ -L "$lib" ]]; do
lib=$(readlink "$lib")
# Prefix dir when path is relativ
if [[ "$lib" != /* ]]; then
lib="$dir/$lib"
fi
dir=$(dirname "$lib")
mkdir -p "$target/$dir"
cp -a "$lib" "$target/$dir/"
done
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment