En fait, c'est possible, peut-être a-t-il été modifié récemment, --output
l'option est ce dont vous avez besoin.
Dans votre exemple :
ar x libclsr11.a --output tmp
La solution dépend de la version de ar
. Vous pouvez utiliser ar --version
pour afficher la version de ar
sur votre système.
Pour les binutils ar / GNU avant la version 2.34 :
Malheureusement, ar avant la version 2.34 ne permet pas de spécifier le répertoire où les fichiers doivent être extraits. (Au moins, je n'ai pas pu en trouver un.) Il utilise toujours le répertoire courant. Cependant, il existe une solution de contournement simple :passez au répertoire cible avant l'extraction et utilisez plutôt le chemin relatif vers l'archive :
# cd ./tmp/
# ar x ../libclsr11.a
De cette façon, vous devriez vous retrouver avec clsrcact.o, clsrcclu.o et clsrccss.o dans le répertoire ./tmp/.
Pour ar / GNU binutils version 2.34 ou ultérieure :
La version 2.34 de binutils a introduit le --output
pour le ar
programme. (Voir le changelog.) Il peut être utilisé pour spécifier le répertoire où le contenu doit être extrait :
# ar x --output tmp libclsr11.a
De cette façon, le contenu de l'archive atterrira dans le tmp
répertoire sans avoir à utiliser la solution de contournement pour ar
antérieur versions.