如何创建x文件名.A到不同的目录



是否有任何选项将对象提取到不同的目录?有没有办法将它们提取到tmp下?

[test]# ls -l
total 1828
-rw-r--r-- 1 root root 1859628 Aug 24 02:10 libclsr11.a
drwxr-xr-x 2 root root    4096 Aug 24 02:12 tmp
[test]# ar x libclsr11.a
[test]# ls -l
total 3760
-rw-r--r-- 1 root root  157304 Aug 24 02:13 clsrcact.o
-rw-r--r-- 1 root root   19304 Aug 24 02:13 clsrcclu.o
-rw-r--r-- 1 root root   55696 Aug 24 02:13 clsrccss.o
..
drwxr-xr-x 2 root root    4096 Aug 24 02:12 tmp
[test]#

解决方案取决于ar的版本。您可以使用ar --version来显示系统中ar的版本。

对于2.34版本之前的ar/GNU binutils:

不幸的是,版本2.34之前的ar没有提供一种方法来指定文件将被提取的目录。(至少我找不到。)它总是使用当前目录。但是,有一个简单的解决方法:在提取之前更改为目标目录,并使用到存档的相对路径:

# cd ./tmp/
# ar x ../libclsr11.a

这样你就会得到一个class。o, clsrcclu。0和成功。./tmp/目录下的0 .

对于ar/GNU binutils 2.34或更高版本:

binutils的2.34版为ar程序引入了--output。(请看更新日志。)它可以用来指定要提取内容的目录:
# ar x --output tmp libclsr11.a

这样,存档内容将降落在tmp目录中,而不必使用早期ar版本的解决方案。

实际上这是可能的,也许最近改变了,--output选项是你需要的。

在你的例子中:

ar x libclsr11.a --output tmp

相关内容

  • 没有找到相关文章

最新更新