Ve skutečnosti je to možné, možná byl nedávno změněn, --output
možnost je to, co potřebujete.
Ve vašem příkladu:
ar x libclsr11.a --output tmp
Řešení závisí na verzi ar
. Můžete použít ar --version
pro zobrazení verze ar
ve vašem systému.
Pro ar / GNU binutils před verzí 2.34:
Bohužel ar před verzí 2.34 neposkytuje způsob, jak určit adresář, kam se mají soubory extrahovat. (Alespoň jsem nemohl žádný najít.) Vždy používá aktuální adresář. Existuje však jednoduché řešení:Přejděte do cílového adresáře před extrakcí a místo toho použijte relativní cestu k archivu:
# cd ./tmp/
# ar x ../libclsr11.a
Tímto způsobem byste měli skončit s clsrcact.o, clsrcclu.o a clsrccss.o v adresáři ./tmp/.
Pro ar / GNU binutils verze 2.34 nebo novější:
Verze 2.34 binutils zavedla --output
pro ar
program. (Viz changelog.) Lze jej použít k určení adresáře, do kterého má být obsah extrahován:
# ar x --output tmp libclsr11.a
Tímto způsobem se obsah archivu dostane do tmp
adresář, aniž byste museli použít řešení pro starší ar
verze.