tar --exclude=".*" 가 빈 아카이브를 생성하는 이유는 무엇입니까?

tar --exclude=".*" 가 빈 아카이브를 생성하는 이유는 무엇입니까?

내가 읽은 모든 내용에 따르면 .svntar 아카이브를 생성할 때 및 기타 숨겨진 파일을 제외하려면 이 모드를 사용하십시오..htaccess--exclude=".*"

시도하면 빈 아카이브가 나타납니다. --exclude긴 옵션을 생략하면 모든 것이 보관됩니다.

이것은 내가 사용하는 전체 명령입니다.

tar -czvf ../_migrate/archive_2012-05-07.tgz --exclude=".*" ./*

나는 또한 차이 없이 이 변형을 시도했습니다.

tar -czvf ../_migrate/archive_2012-05-07.tgz --exclude=".?*" ./*

답변1

귀하의 패턴에는 보관하려는 디렉터리인 "."이 포함되어 있지 않습니다. 패턴으로 ".?*"를 사용하십시오.

답변2

GNU를 사용하고 있는 것 같습니다 tar. 패턴 매칭GNU에서는 전체 경로에서 작동하며 문자 tar에서 멈추지 않습니다 . 파일 목록을 /사용하고 있으므로 이는 모든 파일이 일치한다는 것을 의미합니다. 또한 비슷한 것을 시도할 것입니다 .././*.?*--exclude='.[^/]*'

답변3

.*~ 할 것이다언제나의 파일을 사용하고 있기 때문에 포함될 모든 파일과 일치합니다 .(자체도 일치됩니다 .*).

언급한 파일을 제외하기 위해 아무것도 할 필요가 없으며 어쨌든 glob과 일치하지 않습니다. glob은 수동으로 해당 기능을 활성화하지 않는 한( 또는 쉘의 동등한 기능을 *통해) 점이 앞에 붙은 파일과 일치하지 않습니다 .dotglob

관련 정보