tar-compression
12
总安装量
5
周安装量
#26972
全站排名
安装命令
npx skills add https://github.com/chaterm/terminal-skills --skill tar-compression
Agent 安装分布
claude-code
4
opencode
3
windsurf
2
antigravity
2
github-copilot
2
codex
2
Skill 文档
彿¡£ä¸å缩
æ¦è¿°
tar/gzip/xz 彿¡£å缩ãåå·å¤ä»½æè½ã
tar åºç¡
åå»ºå½æ¡£
# å建 tar 彿¡£
tar -cvf archive.tar /path/to/dir
# å建并 gzip å缩
tar -czvf archive.tar.gz /path/to/dir
# å建并 bzip2 å缩
tar -cjvf archive.tar.bz2 /path/to/dir
# å建并 xz å缩
tar -cJvf archive.tar.xz /path/to/dir
# å¤ä¸ªç®å½/æä»¶
tar -czvf archive.tar.gz dir1 dir2 file1.txt
è§£å彿¡£
# è§£å tar
tar -xvf archive.tar
# è§£å gzip
tar -xzvf archive.tar.gz
# è§£å bzip2
tar -xjvf archive.tar.bz2
# è§£å xz
tar -xJvf archive.tar.xz
# è§£åå°æå®ç®å½
tar -xzvf archive.tar.gz -C /target/dir
æ¥çå 容
# ååºå
容
tar -tvf archive.tar
tar -tzvf archive.tar.gz
# æç´¢æä»¶
tar -tzvf archive.tar.gz | grep "filename"
常ç¨é项
# æé¤æä»¶/ç®å½
tar -czvf archive.tar.gz --exclude='*.log' --exclude='cache' /path
# ä»æä»¶è¯»åæé¤å表
tar -czvf archive.tar.gz --exclude-from=exclude.txt /path
# ä¿çæé
tar -czvf archive.tar.gz --preserve-permissions /path
# å¢éå¤ä»½
tar -czvf archive.tar.gz --newer='2024-01-01' /path
åç¼©å·¥å ·
gzip
# å缩
gzip file.txt # çæ file.txt.gzï¼å é¤åæä»¶
gzip -k file.txt # ä¿çåæä»¶
gzip -9 file.txt # æé«å缩ç
# è§£å
gunzip file.txt.gz
gzip -d file.txt.gz
# æ¥çå缩æä»¶
zcat file.txt.gz
zless file.txt.gz
zgrep "pattern" file.txt.gz
bzip2
# å缩
bzip2 file.txt
bzip2 -k file.txt # ä¿çåæä»¶
bzip2 -9 file.txt # æé«å缩ç
# è§£å
bunzip2 file.txt.bz2
bzip2 -d file.txt.bz2
# æ¥ç
bzcat file.txt.bz2
xz
# å缩
xz file.txt
xz -k file.txt # ä¿çåæä»¶
xz -9 file.txt # æé«å缩ç
xz -T 4 file.txt # å¤çº¿ç¨
# è§£å
unxz file.txt.xz
xz -d file.txt.xz
# æ¥ç
xzcat file.txt.xz
zstd
# å缩
zstd file.txt
zstd -19 file.txt # æé«å缩ç
zstd -T0 file.txt # èªå¨å¤çº¿ç¨
# è§£å
unzstd file.txt.zst
zstd -d file.txt.zst
åå·å¤ä»½
split åå²
# æå¤§å°åå²
split -b 100M archive.tar.gz archive.tar.gz.part_
# æè¡åå²
split -l 10000 largefile.txt part_
# åå¹¶
cat archive.tar.gz.part_* > archive.tar.gz
tar åå·
# å建åå·
tar -czvf - /path/to/dir | split -b 100M - backup.tar.gz.part_
# è§£ååå·
cat backup.tar.gz.part_* | tar -xzvf -
常è§åºæ¯
åºæ¯ 1ï¼ç½ç«å¤ä»½
#!/bin/bash
DATE=$(date +%Y%m%d)
BACKUP_DIR="/backup"
WEB_DIR="/var/www/html"
# å建å¤ä»½
tar -czvf ${BACKUP_DIR}/web_${DATE}.tar.gz \
--exclude='*.log' \
--exclude='cache/*' \
${WEB_DIR}
# ä¿çæè¿ 7 天
find ${BACKUP_DIR} -name "web_*.tar.gz" -mtime +7 -delete
åºæ¯ 2ï¼æ°æ®åºå¤ä»½å缩
# MySQL
mysqldump -u root -p database | gzip > db_backup.sql.gz
# è§£åæ¢å¤
gunzip < db_backup.sql.gz | mysql -u root -p database
# PostgreSQL
pg_dump database | xz > db_backup.sql.xz
åºæ¯ 3ï¼å¢éå¤ä»½
#!/bin/bash
SNAPSHOT="/backup/snapshot.snar"
BACKUP_DIR="/backup"
SOURCE="/data"
# 宿´å¤ä»½ï¼é¦æ¬¡ï¼
tar -czvf ${BACKUP_DIR}/full.tar.gz -g ${SNAPSHOT} ${SOURCE}
# å¢éå¤ä»½
tar -czvf ${BACKUP_DIR}/incr_$(date +%Y%m%d).tar.gz -g ${SNAPSHOT} ${SOURCE}
åºæ¯ 4ï¼è¿ç¨å¤ä»½
# æ¬å°å缩åä¼ è¾
tar -czvf - /path/to/dir | ssh user@remote "cat > /backup/archive.tar.gz"
# è¿ç¨å缩
ssh user@remote "tar -czvf - /path/to/dir" > local_backup.tar.gz
å缩对æ¯
| æ ¼å¼ | å缩ç | é度 | å å | éç¨åºæ¯ |
|---|---|---|---|---|
| gzip | ä¸ | å¿« | ä½ | æ¥å¸¸å¤ä»½ |
| bzip2 | é« | æ ¢ | ä¸ | 彿¡£åå¨ |
| xz | æé« | ææ ¢ | é« | é¿æåå¨ |
| zstd | é« | å¿« | ä¸ | ç°ä»£å¤ä»½ |
æ éææ¥
| é®é¢ | ææ¥æ¹æ³ |
|---|---|
| è§£å失败 | æ£æ¥æä»¶å®æ´æ§ãæ ¼å¼ |
| 空é´ä¸è¶³ | 使ç¨ç®¡éãåå· |
| æé丢失 | ä½¿ç¨ –preserve-permissions |
| æä»¶æå | ä½¿ç¨ gzip -t æµè¯ |
# æµè¯å缩æä»¶
gzip -t file.gz
bzip2 -t file.bz2
xz -t file.xz
# ä¿®å¤æåç gzip
gzrecover file.gz
# æ¥çå缩信æ¯
gzip -l file.gz