*.zip
패턴이 작동하지 않는 이유 tar
:
tar cfjv backup.tar.bz2 --exclude mydir/files/*.zip mydir
다른 구문이 있나요?
답변1
제외 패턴을 인용해야 합니다. mydir/files/*.zip
그렇지 않으면 쉘이 패턴을 확장하고(와일드카드) 여러 파일과 일치할 수 있으며 명령줄의 의미는 예상한 것과 매우 다를 것입니다.
이는 tar
원래 명령줄을 다음으로 변경하는 것을 의미합니다.
$ tar cfjv backup.tar.bz2 --exclude "mydir/files/*.zip" mydir
처음에는 스위치에 문제가 있는 줄 알았습니다 cfjv
. 이는 tar
"현대적인" 명령줄 스위치(접두사가 붙음)와는 -
매우 다르게 처리되는 고대 명령줄 스위치입니다. 그게 네가 그걸 하는 이유야아니요전환 이후의 콘텐츠 jv
인 경우에도 이름이 지정된 아카이브를 가져옵니다 .f
Mac OS X 설명서의 tar
"호환성" 섹션에 이 내용이 언급되어 있습니다.
번들 매개변수 형식은 과거 구현과의 호환성을 위해 지원됩니다. 이는 첫 번째 단어(선행 문자 없음)로 구성되며 각 문자는 옵션을 나타냅니다. 매개변수 뒤에는 별도의 단어가 옵니다. 매개변수의 순서는 번들 명령어의 해당 문자 순서와 일치해야 합니다. 예를 들어,
tar tbf 32 file.tar
세 개의 플래그 t, b, f를 지정합니다. b 및 f 플래그 모두 인수가 필요하므로 명령줄에 두 개의 추가 항목이 있어야 합니다. 32는 b 플래그의 매개변수이고 file.tar는 f 플래그의 매개변수입니다.
답변2
현재 디렉터리와 모든 하위 디렉터리에 있는 모든 .zip 파일을 검색하려면 다음을 시도해 보세요.
./foldername -type f -name '*.zip' 찾기
현재 디렉터리와 모든 하위 디렉터리의 모든 .zip 파일을 제외하려면 다음을 시도하십시오.
./foldername 찾기 -type f -name '*.zip' > .txt 제외
현재 디렉터리와 모든 하위 디렉터리의 모든 .zip 파일을 제외하고 tar 아카이브를 만들려면 다음을 시도하십시오.
tar -zcvf 백업 폴더 이름.tar.gz -X 제외 .txt ./폴더 이름