如何 ar x filename.a 到不同的目录
how to ar x filename.a to different directory
是否有任何 ar 选项可以将对象提取到不同的目录?
有什么方法可以将它们提取到下面的 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
的版本。
对于 ar / GNU binutils 2.34 之前的版本:
遗憾的是,ar 2.34 之前的版本没有提供指定解压缩文件目录的方法。 (至少我找不到。)它总是使用当前目录。但是,有一个简单的解决方法:在提取之前更改目标目录 并改用存档的相对路径:
# cd ./tmp/
# ar x ../libclsr11.a
这样你应该在 ./tmp/ 目录中得到 clsrcact.o、clsrcclu.o 和 clsrccss.o。
对于 ar / GNU binutils 2.34 或更高版本:
2.34 版的 binutils 为 ar
程序引入了 --output
。 (参见the changelog。)可用于指定提取内容的目录:
# ar x --output tmp libclsr11.a
这样存档内容将进入 tmp
目录,而无需使用早期 ar
版本的解决方法。
其实是可以的,可能最近改了,--output
选项就是你所需要的。
在你的例子中:
ar x libclsr11.a --output tmp
是否有任何 ar 选项可以将对象提取到不同的目录? 有什么方法可以将它们提取到下面的 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
的版本。
对于 ar / GNU binutils 2.34 之前的版本:
遗憾的是,ar 2.34 之前的版本没有提供指定解压缩文件目录的方法。 (至少我找不到。)它总是使用当前目录。但是,有一个简单的解决方法:在提取之前更改目标目录 并改用存档的相对路径:
# cd ./tmp/
# ar x ../libclsr11.a
这样你应该在 ./tmp/ 目录中得到 clsrcact.o、clsrcclu.o 和 clsrccss.o。
对于 ar / GNU binutils 2.34 或更高版本:
2.34 版的 binutils 为 ar
程序引入了 --output
。 (参见the changelog。)可用于指定提取内容的目录:
# ar x --output tmp libclsr11.a
这样存档内容将进入 tmp
目录,而无需使用早期 ar
版本的解决方法。
其实是可以的,可能最近改了,--output
选项就是你所需要的。
在你的例子中:
ar x libclsr11.a --output tmp