2016-06-02 8 views
0

두 개의 인수를 허용하는 셸 스크립트가 필요합니다. 첫 번째 파일은 특정 폴더의 경로이고 두 번째 파일은 int 값 (1 또는 2)입니다.특정 폴더의 모든 tar 파일에서 특정 파일 형식 추출

두 번째 인수가 1 인 경우 언급 된 폴더의 모든 tar 파일을 살펴보고 첫 번째 인수에서 경로 내의 특정 폴더에 실행 파일 만 추출해야합니다. 이 경우 해당 폴더의 이름은 "압축이 풀림"입니다.

두 번째 인수가 2 인 경우 첫 번째 인수에서 지정한 폴더의 모든 tar 개 파일의 모든 파일을 *.txt 개 추출해야합니다.

나는이 같은 것을 시도하고 있지만 모든 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 

답변

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 
+0

그것은 TXT 파일을 작동하고 있지만 실행을 위해 어떻게 든 그것을 선택해야하고 않는 방법 – Ognjen

+0

을 생각이없는 실행 파일을 이름으로 식별 할 수 있으며 실행 파일 만 압축 해제 할 수 없습니다. 다음 중 하나를 수행해야합니다 : 1. 모두 압축을 풀고 다음에 각 파일을 식별하십시오. 2. tar 파일을 이해하고 실행 파일을 선택적으로 선택할 수있는 프로그램을 작성하십시오. –

+0

실제로 두 번째 옵션은 필요한 것이지만 확실하지 않습니다 그렇게하는 방법 – Ognjen

0

은을 yor 터미널에서 실행 tar 파일을 형성 :

$ tar -zxvf TARNAME.tar.gz PATH/FILNAME 
관련 문제