7Zip-Command Line : 와일드 카드 패턴으로 폴더를 제외 하시겠습니까?


107

커맨드 라인 7zip 명령에서 와일드 카드 경로를 제외하는 방법에 대한 아이디어가 있습니까?

나는 이런 식으로하고있다 :

7z.exe a -t7z archive.7z FolderToArchive\ -mx0

"FolderToArchive"아래에있는 폴더 \bin\*.*\obj\*.*폴더 를 제외하고 싶습니다 .

파일을 제외하기 위해 -x매개 변수를 사용할 수 있습니다 . 도움말 파일은 다음을 사용하는이 예제를 제공합니다 -x.

7z a -tzip archive.zip *.txt -x!temp.*

파일을 제외하는 데 좋습니다. 그러나 다시 와일드 카드 지정 폴더를 제외하고 싶습니다. 내 "FolderToArchive"에서 해당 폴더 아래에 또는이 없을 수도 있고, 여러 폴더가 있습니다 bin\obj\폴더. 아카이브에 포함시키지 않겠습니다.

나는 같은 패턴을 시도했다

-x!bin\*
-x!bin\*.*
-x!\bin\*
-x!\bin\*.*
-x!\\bin\\*
-x!\\bin\\*.*

bin\폴더 를 제외하지 않는 것 같습니다 . 이것은 단순히 7zip의 제한입니까?

답변:


131

binobj 폴더를 재귀 적으로 제외하려면 다음 명령을 사용할 수 있습니다.

7z.exe a -t7z archive.7z FolderToArchive\ -mx0 -xr!bin -xr!obj

5
다른 모든 사람들을 위해 : 루트 디렉토리의 파일 만 무시하려면 -xr0!*.zip적어도 사용 하지 마십시오 r0.
Oliver

6
또한 이것이 Linux / Unix 명령 행에있는 경우 '-x!$RECYCLE.BIN', 외부 드라이브의 휴지통을 제외시키기 위해 쉘에 의한 사전 처리를 추가하지 않으려면 작은 따옴표로 묶어야합니다 .
thanosa75

15

버그를 피하려면 -r 또는 -xr을주의해서 사용하십시오.

다음과 같은 디렉토리가 있다고 가정하십시오.

.\path1\path2\bin
.\path1\path2\src
.\path3\path4\path5\bin
.\path3\path4\path5\src

명령을 실행하십시오.

7z a -t7z archive.7z .\path1\path2 .\path3\path4\path5 -xr!bin

아카이브에 넣은 것.

.\path2\src
.\path5\src

즉, .\path2\and .\path5\는 archive.7z 에서 최상위 폴더 가되었으며 두 bin디렉토리는 모두 제외되었습니다.

-x 는 아카이브의 최상위 폴더에 상대적인 경로 / 파일 이름 만 지원합니다 .

따라서을 제외 .\path1\path2\bin하고 다른 모든 'bin'디렉토리를 포함하려면 명령은 다음과 같아야합니다.

7z a -t7z archive.7z .\path1\path2 .\path3\path4\path5 -x!path2\bin

-x에서 절대 경로를 사용하려고 시도했지만 절대 성공하지 못했습니다.


최신 정보:

-spfLinux 용 7z에는 절대 경로와 함께 작동 하는 옵션이 있습니다 .

에 따르면 마르코 , -spf15.14을 7-ZIP에서 Windows에서도 사용할 수 있습니다


2
참고 : 적어도 우분투에서 가장 작은 따옴표 모든 -x 용어를 넣어하는 것이 좋습니다 '-x!path2\bin'쉘 교체로 실행하지 ... (당신에게 더 이상, 문법적으로 잘못된 "명령"을 받고 ...)
프랭크 Nocke

@FrankNocke의 의견을 참조하기 위해, 창에서 폴더 이름에 점을 허용하도록이 작업을 수행 할 수도 있습니다.'-xr!\.foo'
DonBecker
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.