从特定文件夹中的所有tar文件中提取特定文件类型

时间:2016-06-02 11:27:03

标签: linux shell

我需要接受两个参数的shell脚本。 第一个是特定文件夹的路径,第二个是int值(1或2)。

如果第二个参数是1,那么我必须浏览所提到的文件夹中的所有tar文件,并将可执行文件从第一个参数中提取到路径内的特定文件夹中。在这种情况下,该文件夹的名称是"解压缩"。

如果第二个参数是2,那么我必须从第一个参数给出的文件夹中的所有*.txt文件中提取所有tar个文件。

我正在尝试这样的事情但不知道如何捕获每个tar文件并提取这两种文件类型之一。

#!/bin/bash

cd $1
if [$2 –eq 1 ]
then
for f in *.tar; do
tar –xv –f "$f" –-wildcards EXECUTABLE FILES -C ./unpacked
done
fi

if [$2 –eq 2 ]
then
for f in *.tar; do
tar –xv –f "$f" –-wildcards "*.txt" -C ./unpacked
done
fi

2 个答案:

答案 0 :(得分:0)

[MEMBER...]参数必须是最后一个。

#!/bin/bash

cd $1
if [$2 –eq 1 ]
then
for f in *.tar; do
tar –xv –f "$f" –-wildcards -C ./unpacked EXECUTABLE FILES
done
fi

if [$2 –eq 2 ]
then
for f in *.tar; do
tar –xv –f "$f" –-wildcards -C ./unpacked "*.txt"
done
fi

答案 1 :(得分:0)

从yor终端执行的tar文件中提取特定文件:

$ tar -zxvf TARNAME.tar.gz PATH/FILNAME