Eigentlich ist es möglich, vielleicht wurde es kürzlich geändert, --output
Option ist, was Sie brauchen.
In Ihrem Beispiel:
ar x libclsr11.a --output tmp
Die Lösung hängt von der Version von ar
ab . Sie können ar --version
verwenden um die Version von ar
anzuzeigen auf Ihrem System.
Für ar / GNU binutils vor Version 2.34:
Leider bietet ar vor Version 2.34 keine Möglichkeit, das Verzeichnis anzugeben, in das die Dateien extrahiert werden sollen. (Zumindest konnte ich keine finden.) Es verwendet immer das aktuelle Verzeichnis. Es gibt jedoch einen einfachen Workaround:Wechseln Sie vor dem Extrahieren in das Zielverzeichnis und verwenden Sie stattdessen den relativen Pfad zum Archiv:
# cd ./tmp/
# ar x ../libclsr11.a
Auf diese Weise sollten Sie mit clsrcact.o, clsrcclu.o und clsrccss.o im ./tmp/-Verzeichnis landen.
Für ar / GNU binutils Version 2.34 oder höher:
Version 2.34 von binutils hat den --output
eingeführt für ar
Programm. (Siehe Änderungsprotokoll.) Es kann verwendet werden, um das Verzeichnis anzugeben, in das der Inhalt extrahiert werden soll:
# ar x --output tmp libclsr11.a
Auf diese Weise landen die Archivinhalte im tmp
Verzeichnis, ohne die Problemumgehung für früher ar
verwenden zu müssen Versionen.