안녕하세요, 디렉토리를 가질 수있는 파일의 압축을 풀어야합니다. 그 디렉토리 내의 모든 것을 제외하고, 많은 옵션을 시도하고 잘 보였지만 보이지 않습니다. 좋은 해결책을 찾으려면.linux는 폴더 내의 모든 것을 제외하고 압축을 풉니 다
이 zip 파일의 내용은 다음과 같습니다 폴더를 알 수없는 배제의 깊이를주의하십시오, 그러나 우리는 난 단지 그 안에 파일의 압축을 풉니이 명령을 시도 모두에게
$unzip -l patch2.zip
Archive: patch2.zip
Length Date Time Name
--------- ---------- ----- ----
0 2013-10-29 17:42 EXCLUDE/
0 2013-10-29 17:24 EXCLUDE/inner/
0 2013-10-29 17:24 EXCLUDE/inner/inner1.txt
0 2013-10-29 15:45 EXCLUDE/file.txt
0 2013-10-29 15:44 patch.jar
0 2013-10-29 15:44 system.properties
--------- -------
0 6 files
를 제외해야 폴더 및 해당 콘텐츠는 포함되지 않습니다.
$unzip -l patch2.zip -x EXCLUDE/*
Archive: patch2.zip
Length Date Time Name
--------- ---------- ----- ----
0 2013-10-29 17:42 EXCLUDE/
0 2013-10-29 17:24 EXCLUDE/inner/
0 2013-10-29 17:24 EXCLUDE/inner/inner1.txt
0 2013-10-29 15:44 patch.jar
0 2013-10-29 15:44 system.properties
--------- -------
0 5 files
감사합니다.
+1 답장에 대해서는 OP의 질문에 가깝습니다. 내 자신은 "알기에 좋은"대체물입니다 ^^ (이것은 초기 리눅스 시대에 꽤 유명했지만 반면에 거의 알려지지 않았습니다) –
고마워 이것이 완벽하게 작동했습니다. "압축 해제가 전달 된 후 압축이 풀리기 전에 셸에서 확장 할 것입니다"라는 의미를 설명해 주시겠습니까? – Ravi
@Ravi 셸이 와일드 카드 패턴을 파일 이름으로 변환하는 [Globbing] (http://tldp.org/LDP/abs/html/globbingref.html)에 대해 읽어보십시오. 예를 들어'echo *'를 실행하면, 쉘은'*'를 파일 이름의 목록으로 "확장"합니다. 'file1','file2' 등으로'echo'를 실행합니다. 결과적으로'echo *'는'echo file1 file2'가됩니다. 'echo' 프로그램은 결코 와일드 카드를 보지 못합니다. 단지'file1'과'file2' 인자만을 보게됩니다. 그러나,'echo "*"'패턴을 인용하면, 쉘은이 확장을 수행하지 않을 것이고 패턴은 그것을 해석 할 수있는 프로그램에 인수로 전달 될 것입니다. – dogbane