7zip Linux 명령줄 - 디렉터리 제외

7zip Linux 명령줄 - 디렉터리 제외

7zip을 사용하여 내 웹사이트의 .7z 아카이브를 만들고 싶습니다. 이미 백업해 두었기 때문에 백업할 가치가 없는 대용량 파일(수 기가바이트)이 포함된 디렉터리가 몇 개 있습니다. 특정 파일이나 디렉터리만 백업하도록 지정할 수 있지만 이 작업을 수행하기 위한 스크립트를 만들 계획이고 새 파일, 파일 형식 및 디렉터리를 포함하도록 스크립트를 계속 업데이트하는 것은 약간 성가신 일입니다. 나는 문서에서 디렉토리 제외에 관한 어떤 것도 찾을 수 없습니다. 파일만. 이 작업을 수행하는 가장 간단한 방법은 무엇입니까?

이전에 (피해야 할 큰 파일이 있기 전에) 사용한 명령은 다음과 같습니다.

7z a backup.7z *

작업 디렉토리에서 완료되었습니다.

답변1

directory파일 유형입니다. man 7z읽기는 쉽지 않지만 다음과 같이 언급되어 있습니다 -x.

-x[r[-|0]]]{@listfile|!wildcard}
         

    Exclude filenames

다음과 같은 디렉터리 트리가 있다고 가정해 보겠습니다.

$ tree
.
├── dir
│   └── file3
├── dir1
│   └── file4
├── file1
└── file2

2 directories, 4 files

dir그리고 우리는 무시 하고 싶습니다 dir1:

$ 7z a -x'!dir' -x'!dir1' b.7z  *

그런 다음:

$ 7z l b.7z
(...)
   Date      Time    Attr         Size   Compressed  Name
------------------- ----- ------------ ------------  ------------------------
2018-04-03 22:25:24 ....A            0            0  file1
2018-04-03 22:25:24 ....A            0            0  file2
------------------- ----- ------------ ------------  ------------------------
2018-04-03 22:25:24                  0            0  2 files

답변2

나에게는 구문이 약간 다릅니다.

NOW=`date +%Y-%m-%d-%H-%M-%S`
XX=`cat ~aaaaaazzzzzz/.gnupg2/passphrase-symmetric`
7z a                                           \
  -t7z -m0=lzma2 -mx=9 -mfb=64                 \
  -md=32m -ms=on -mhe=on -p${XX}               \
    '-xr!~/Documents/temp/'                    \
    '-xr!~/Documents/Sites/'                   \
    '-xr!**/*.zip'   '-xr!**/*.bz2'         '-xr!**/*.gz'   '-xr!**/*.7z'          \
    '-xr!**/*.pyc'   '-xr!**/__pycache__/**'                 \
    '-xr!**/*.gpkg'  '-xr!**/*.gramp' '-xr!**/*.ged'         \
    '-xr!**/*.log'   '-xr!*/venv/*' '-xr!*.sqlit*'  '-xr!*.bak'  '-xr!*.html~' '-xr!*.html~*'  \
    '-xr!*.vm'  '-xr!*.vmdk'  '-xr!*.vmem'  '-xr!*.vmsd'  '-xr!*.vmss'  '-xr!*.vmx'  '-xr!*.vmxf' \
    '-xr!*.mp4' '-xr!*.msf'                           \
    '-xr!*.htm' '-xr!*.html'                          \
   ${BACKUP_DIR}/data-encrypted/BackUp-${NOW}.7z      \
                    ~/Documents            \
                    ~/.ssh                 \
                    ~/.gnupg2              \
                    ~/.gnupg  

나는 리눅스 / 우분투에서 실행

관련 정보