tar를 사용하여 보관하려는 다양한 Python 패키지가 포함된 디렉터리가 있습니다. __pycache__
빌드/테스트 프로세스에서 남겨진 많은 수의 폴더를 제외해야 하는데 --exclude "__pycache__"
. 이 패턴과 일치하는 모든 하위 디렉터리를 무시하도록 tar에 어떻게 지시할 수 있습니까?
tar -cvf myarchive.tar -C ~/myproject package1/ package2/ --exclude "__pycache__"
재구축:
me@me-laptop:~/myproject$ pwd
/home/me/myproject
me@me-laptop:~/myproject$ tree
.
├── package1
│ ├── include
│ └── __pycache__
└── package2
├── include
└── __pycache__
6 directories, 0 files
me@me-laptop:~/myproject$ tar -cvf myarchive.tar -C ~/myproject package1/ package2/ --exclude "__pycache__"
package1/
package1/include/
package1/__pycache__/
package2/
package2/include/
package2/__pycache__/
답변1
--exclude
명령 시작 부분에 스위치를 추가 해야 합니다 .이것. 이 솔루션은 내 openSUSE 컴퓨터에서 작동하지만 현재 사용 가능한 다른 배포판이 없습니다.
host:/tmp # find test*
test1
test1/file1
test1/__pycache__
test1/__pycache__/file1-py
test1/include
test1/include/file1-incl
test2
test2/__pycache__
test2/__pycache__/file2-py
test2/include
test2/include/file2-incl
test2/file2
host: # tar --exclude='__pycache__' -cv test* -f testtar.tar
test1/
test1/file1
test1/include/
test1/include/file1-incl
test2/
test2/include/
test2/include/file2-incl
test2/file2