Is there any ar option to extract objects to a different directory ? Any way to extract them to tmp below ?
[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]#
If you want to display only the filename, you can use basename command. find infa/bdm/server/source/path -type f -iname "source_fname_*. txt" Shell command to find the latest file name in the command task!
In order to print only the file names in a single line, line by line, we need to either make use of a flag with the ls command or append another command to it.
Linux or UNIX-like system use the ls command to list files and directories. However, ls does not have an option to list only directories. You can use combination of ls command, find command, and grep command to list directory names only. You can use the find command too.
The solution depends on the version of ar
. You can use ar --version
to display the version of ar
on your system.
For ar / GNU binutils before version 2.34:
Unfortunately, ar before version 2.34 does not provide a way to specify the directory where the files shall be extracted. (At least I was unable to find one.) It always uses the current directory. However, there is a simple workaround: Change to the target directory before extraction and use the relative path to the archive instead:
# cd ./tmp/
# ar x ../libclsr11.a
This way you should end up with clsrcact.o, clsrcclu.o and clsrccss.o inside the ./tmp/ directory.
For ar / GNU binutils version 2.34 or later:
Version 2.34 of binutils introduced the --output
for the ar
program. (See the changelog.) It can be used to specify the directory where the contents shall be extracted:
# ar x --output tmp libclsr11.a
That way the archive contents will land inside the tmp
directory without having to use the workaround for earlier ar
versions.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With