当前位置: 首页 > news >正文

打包,压缩解压,上传下载

在 Linux 系统中,“打包” 和 “压缩” 是两个相关但不同的概念:

  • 打包:将多个文件 / 目录整合为一个单一文件(仅整合,不减小体积),核心工具是 tar
  • 压缩:对文件进行算法处理以减小体积(需特定压缩算法,如 gzipbzip2xz

实际使用中,通常会先打包再压缩(或直接用工具组合完成),以下是 Linux 中最常用的打包解压命令详解,按工具分类说明。

一、核心工具:tar(打包 + 压缩 / 解压)

tar 是 Linux 下最常用的打包工具,支持与多种压缩算法结合(通过选项指定),几乎所有 Linux 发行版默认预装。

1. 基本语法

tar [选项] 目标文件名.tar[.压缩后缀] 源文件/目录

2. 关键选项(必记)

选项含义常用场景
-c创建打包文件(即 “打包” 操作)配合 -f 生成新的 tar 包
-x提取文件(即 “解压” 操作)配合 -f 解压 tar 包
-v详细模式:显示打包 / 解压的文件列表查看过程,排查问题
-f指定目标文件名(必须放在选项最后,紧跟文件名)所有 tar 命令的核心选项,不可省略
-z用 gzip 算法压缩 / 解压(对应后缀 .tar.gz 或 .tgz压缩率中等,速度较快,最常用
-j用 bzip2 算法压缩 / 解压(对应后缀 .tar.bz2 或 .tbz2压缩率略高于 gzip,速度稍慢
-J用 xz 算法压缩 / 解压(对应后缀 .tar.xz 或 .txz压缩率最高,速度最慢,适合大文件
-C指定解压目录(解压时用,需目录已存在)避免解压到当前目录,整理文件
-t查看tar 包内的文件列表(不解压)确认包内内容,避免误操作
--exclude打包时排除指定文件 / 目录过滤不需要打包的内容(如日志、缓存)

3. 常用场景示例

(1)仅打包(不压缩,后缀 .tar

将 docs/ 目录和 report.txt 文件打包为 archive.tar

tar -cvf archive.tar docs/ report.txt
# 解释:-c(创建)、-v(详细)、-f(指定文件名)
(2)打包 + 压缩(3 种主流算法)
压缩算法命令(打包 + 压缩)对应后缀解压命令
gziptar -zcvf archive.tar.gz docs/ report.txt.tar.gz / .tgztar -zxvf archive.tar.gz
bzip2tar -jcvf archive.tar.bz2 docs/ report.txt.tar.bz2 / .tbz2tar -jxvf archive.tar.bz2
xztar -Jcvf archive.tar.xz docs/ report.txt.tar.xz / .txztar -Jxvf archive.tar.xz

示例:用 gzip 压缩 photos/ 目录为 photos.tgz.tgz 是 .tar.gz 的简写):

tar -zcvf photos.tgz photos/
(3)解压到指定目录

将 archive.tar.gz 解压到 /tmp/extract/ 目录(需先确保 /tmp/extract/ 存在):

# 1. 先创建目标目录(若不存在)
mkdir -p /tmp/extract/
# 2. 解压到指定目录
tar -zxvf archive.tar.gz -C /tmp/extract/
(4)查看 tar 包内容(不解压)

查看 archive.tar.bz2 内包含的文件:

tar -jtf archive.tar.bz2  # -j对应bzip2,-t查看,-f指定文件
(5)打包时排除指定文件

打包 project/ 目录,但排除 project/logs/(日志目录)和 project/*.tmp(临时文件):

tar -zcvf project.tar.gz --exclude=project/logs/ --exclude=project/*.tmp project/

二、跨平台工具:zip / unzip(压缩 / 解压)

zip 和 unzip 是跨平台的压缩工具(支持 Linux、Windows、macOS),默认生成 .zip 文件,兼容性强,但压缩率略低于 tar.xz

1. 安装(部分系统默认未预装)

  • Ubuntu/Debian:sudo apt install zip unzip
  • CentOS/RHEL:sudo yum install zip unzip
  • Fedora:sudo dnf install zip unzip

2. 常用命令示例

(1)压缩文件 / 目录(zip
需求命令说明
压缩单个文件zip file.zip document.txt将 document.txt 压缩为 file.zip
压缩多个文件zip files.zip doc1.txt doc2.pdf img.jpg多个文件打包压缩为 files.zip
压缩目录(含子目录)zip -r dir.zip mydir/-r 表示递归压缩目录内所有内容
压缩时设置密码zip -P MyPass123 secure.zip secret.txt-P 后接密码(注意:密码明文显示,不安全)
显示压缩进度zip -v -r dir.zip mydir/-v 详细模式,显示压缩过程和进度
(2)解压文件(unzip
需求命令说明
解压到当前目录unzip file.zip直接解压 file.zip 到当前工作目录
解压到指定目录unzip file.zip -d /tmp/unzip/-d 指定解压目录(需提前创建)
查看 zip 包内容(不解压)unzip -l file.zip列出 file.zip 内的所有文件 / 目录
解压带密码的 zipunzip -P MyPass123 secure.zip-P 后接密码(同样不建议明文输入,可省略让系统交互提示)
强制覆盖已存在文件unzip -o file.zip-o 强制覆盖,无需确认(默认会提示是否覆盖)
安静模式解压(不显示输出)unzip -q file.zip-q 安静模式,仅在出错时显示信息

三、少见但需了解:rar / unrar(压缩 / 解压)

rar 是 Windows 下常用的压缩格式,Linux 默认不预装,需手动安装,适合处理来自 Windows 的 .rar 文件。

1. 安装

  • Ubuntu/Debian:sudo apt install rar unrar
  • CentOS/RHEL:需先启用 EPEL 源,再安装:sudo yum install epel-release && sudo yum install rar unrar

2. 常用命令示例

操作命令说明
压缩目录rar a dir.rar mydir/a 表示 “添加” 文件到 rar 包(即压缩), -r 递归(默认启用)
解压到当前目录unrar x dir.rarx 保持原目录结构解压(推荐)
解压到指定目录unrar x dir.rar /tmp/rar/解压到 /tmp/rar/,保持目录结构
解压所有文件到当前目录(不保持结构)unrar e dir.rare 扁平化解压,所有文件放在同一目录
查看 rar 包内容unrar l dir.rarl 列出包内文件

四、常见压缩格式与命令对比表

压缩格式特点压缩命令解压命令查看内容命令
.tar仅打包,不压缩tar -cvf x.tar 源tar -xvf x.tartar -tvf x.tar
.tar.gz/.tgzgzip 压缩,速度快tar -zcvf x.tar.gz 源tar -zxvf x.tar.gztar -ztvf x.tar.gz
.tar.bz2/.tbz2bzip2 压缩,率略高tar -jcvf x.tar.bz2 源tar -jxvf x.tar.bz2tar -jtvf x.tar.bz2
.tar.xz/.txzxz 压缩,率最高tar -Jcvf x.tar.xz 源tar -Jxvf x.tar.xztar -Jtvf x.tar.xz
.zip跨平台,兼容性强zip -r x.zip 源unzip x.zip -d 目录unzip -l x.zip
.rarWindows 常用,需安装rar a x.rar 源unrar x x.rar 目录unrar l x.rar

五、注意事项

  1. tar 命令的 -f 位置-f 必须紧跟目标文件名,且放在所有选项的最后(如 tar -zcvf 正确tar -zfvc 错误)。
  2. 权限问题:解压后文件的权限会保持压缩前的原始权限,若当前用户无权限访问,需用 chmod/chown 调整。
  3. 损坏压缩包修复
    • tar 包:tar -zxvf x.tar.gz --ignore-zeros(忽略零字节块,尝试修复损坏部分)。
    • zip 包:unzip -F x.zip(轻度修复)或 unzip -FF x.zip(强制修复)。
  4. 大文件处理:若压缩包超过 4GB,建议用 tar.xz 或 zip(需确保文件系统支持大文件,如 ext4、xfs)。

通过以上命令,可覆盖 Linux 中 99% 以上的打包解压场景,其中 tar 系列命令是必须熟练掌握的核心工具,zip/unzip 则适合跨平台文件传输。



tar命令

tar 是 Linux/Unix 系统中最核心的文件打包工具(全称 “tape archive”,最初用于磁带备份),本身仅负责 “打包”(将多个文件 / 目录合并为单一文件),但通过与不同压缩算法(如 gzipbzip2xz)结合,可实现 “打包 + 压缩” 一体化操作。其功能强大、用法灵活,是 Linux 系统管理中必须掌握的命令之一。

一、tar 命令的基本语法

tar [选项] [目标文件名.tar[.压缩后缀]] [源文件/目录...]
  • 核心逻辑:通过选项指定 “操作类型”(打包 / 解压 / 查看)、“压缩算法”(若需),并指定目标文件和源文件。

二、核心选项详解(必记)

tar 的选项非常多,以下是日常使用中最核心的选项(按功能分类):

类别选项含义常用场景
操作类型-c创建打包文件(即 “打包” 操作,对应英文 “create”)生成新的 tar 包时使用
-x提取文件(即 “解压” 操作,对应英文 “extract”)从 tar 包中解压文件时使用
-t查看 tar 包内容(不解压,仅列出文件列表,对应英文 “list”)确认 tar 包内包含的文件
压缩算法-z调用 gzip 算法进行压缩 / 解压(对应文件后缀 .tar.gz 或 .tgz压缩率中等,速度较快(最常用)
-j调用 bzip2 算法进行压缩 / 解压(对应后缀 .tar.bz2 或 .tbz2压缩率略高于 gzip,速度稍慢
-J调用 xz 算法进行压缩 / 解压(对应后缀 .tar.xz 或 .txz压缩率最高,速度最慢(适合大文件)
辅助功能-f指定目标文件名(必须紧跟文件名,且通常放在选项最后)所有 tar 命令的 “必选” 选项
-v详细模式(显示操作过程中的文件列表,对应英文 “verbose”)查看打包 / 解压的具体文件
-C指定解压目录(仅解压时使用,需目标目录已存在)避免解压到当前目录,整理文件
-r向已存在的 tar 包中追加文件(仅对未压缩的 .tar 包有效)补充文件到已打包的 tar 中
---exclude打包时排除指定文件 / 目录(支持通配符)过滤不需要打包的内容(如日志)
-p保留文件原始权限(解压时使用,默认会继承当前目录权限)恢复文件时保持原有权限
-h跟随符号链接(打包时将符号链接指向的实际文件 / 目录打包,而非链接本身)处理符号链接时使用

三、常用场景与示例

1. 仅打包(不压缩,生成 .tar 文件)

功能:将多个文件 / 目录合并为一个 .tar 文件(体积不变,仅整合)。命令格式tar -cvf 目标.tar 源文件/目录...

示例 1:将 file1.txtfile2.jpg 和 docs/ 目录打包为 archive.tar

tar -cvf archive.tar file1.txt file2.jpg docs/
# 输出:会列出所有被打包的文件(因 -v 选项)

示例 2:打包当前目录下所有 .sh 脚本(用通配符 *.sh

tar -cvf scripts.tar *.sh
2. 打包 + 压缩(3 种主流算法)

tar 本身不压缩,但通过 -z/-j/-J 选项可调用对应压缩算法,实现 “打包 + 压缩” 一步完成。

压缩算法命令(打包 + 压缩)生成文件后缀特点(压缩率:xz > bzip2 > gzip;速度:gzip > bzip2 > xz)
gziptar -zcvf 目标.tar.gz 源文件/目录....tar.gz 或 .tgz平衡速度和压缩率,最常用
bzip2tar -jcvf 目标.tar.bz2 源文件/目录....tar.bz2 或 .tbz2压缩率略高,速度稍慢
xztar -Jcvf 目标.tar.xz 源文件/目录....tar.xz 或 .txz压缩率最高,适合大文件(如备份),但压缩耗时最长

示例 1:用 gzip 压缩 data/ 目录为 data.tgz.tgz 是 .tar.gz 的简写)

tar -zcvf data.tgz data/

示例 2:用 xz 压缩 large_file.iso 为 large_file.tar.xz(适合大文件)

tar -Jcvf large_file.tar.xz large_file.iso
3. 解压操作(从 tar 包提取文件)

命令格式tar -[z/j/J]xvf 源.tar[.压缩后缀](根据压缩算法选择 -z/-j/-J,纯 tar 包无需)

示例 1:解压 .tar 包(无压缩)到当前目录

tar -xvf archive.tar  # 无压缩,无需 -z/-j/-J

示例 2:解压 .tar.gz 包到当前目录

tar -zxvf data.tgz  # -z 对应gzip算法

示例 3:解压 .tar.xz 包到指定目录 /opt/backup/(需先确保目录存在)

# 1. 先创建目标目录(若不存在)
mkdir -p /opt/backup/
# 2. 用 -C 指定解压目录
tar -Jxvf large_file.tar.xz -C /opt/backup/

示例 4:安静模式解压(不显示文件列表,仅操作)

tar -zxf data.tgz  # 去掉 -v 即安静模式
4. 查看 tar 包内容(不解压)

命令格式tar -[z/j/J]tvf 源.tar[.压缩后缀]-t 表示查看,配合对应压缩算法选项)

示例 1:查看 .tar.bz2 包内的文件列表

tar -jtf docs.tar.bz2  # -j 对应bzip2,-t 查看,-f 指定文件

示例 2:查看 .tar.gz 包中是否包含 readme.txt

tar -ztf archive.tar.gz | grep "readme.txt"
5. 打包时排除指定文件 / 目录

通过 --exclude 选项可过滤不需要打包的内容(支持通配符 *? 等)。

示例 1:打包 project/ 目录,但排除 project/logs/(日志目录)和 *.tmp(临时文件)

tar -zcvf project.tar.gz --exclude=project/logs/ --exclude=*.tmp project/

示例 2:排除多个目录(用绝对路径更精准)

tar -jcvf backup.tar.bz2 --exclude=/home/user/.cache --exclude=/home/user/Downloads /home/user/
6. 向已存在的 tar 包追加文件(仅对未压缩的 .tar 有效)

注意:仅支持未压缩的 .tar 包(.tar.gz/.tar.bz2 等压缩包无法追加),用 -r 选项。

示例:向 archive.tar 中追加 new_file.pdf

tar -rvf archive.tar new_file.pdf  # -r 表示追加
7. 保留文件权限解压(重要!)

默认情况下,解压文件的权限会继承当前目录的权限,若需保留压缩前的原始权限(如备份恢复场景),需加 -p 选项。

示例:解压 backup.tar.gz 并保留原始权限

tar -zxvpf backup.tar.gz  # -p 保留权限
8. 处理符号链接(打包实际文件而非链接)

默认情况下,tar 会打包符号链接本身(而非链接指向的文件),若需打包链接指向的实际内容,加 -h 选项。

示例:打包 link_to_docs(符号链接)指向的实际目录

tar -zcvfh docs_link.tar.gz link_to_docs  # -h 跟随符号链接

四、高级用法

1. 增量备份(仅打包新增 / 修改的文件)

结合 --newer 选项,可仅打包指定时间之后修改的文件(适合增量备份)。

示例:仅打包 /data/ 目录中 2025 年 11 月 1 日之后修改的文件

tar -zcvf incremental_backup.tar.gz --newer "2025-11-01" /data/
2. 拆分大 tar 包(适合存储到多个设备)

用 split 命令配合,可将大 tar 包拆分为指定大小的小文件(如 4GB 一个)。

示例:将 large.tar.xz 拆分为每个 4GB 的文件(命名为 part_aapart_ab...)

split -b 4G large.tar.xz part_

还原拆分的包:先合并,再解压

cat part_* > large.tar.xz  # 合并所有拆分文件
tar -Jxvf large.tar.xz    # 解压
3. 修复损坏的 tar 包

若 tar 包部分损坏,可尝试用 --ignore-zeros 选项忽略零字节块(可能恢复部分文件)。

示例:修复损坏的 corrupted.tar.gz 并解压

tar -zxvf corrupted.tar.gz --ignore-zeros

五、常见错误与注意事项

  1. -f 选项的位置-f 必须紧跟目标文件名,且通常放在所有选项的最后(如 tar -zcvf 正确tar -zfvc 错误)。

    • 错误示例:tar -zfv archive.tar.gz docs/-f 后未直接跟文件名,会报错)。
    • 正确示例:tar -zcvf archive.tar.gz docs/-f 后直接接 archive.tar.gz)。
  2. 压缩后缀与选项对应

    • .tar.gz/.tgz → 必须用 -z
    • .tar.bz2/.tbz2 → 必须用 -j
    • .tar.xz/.txz → 必须用 -J;若选项与后缀不匹配,会报错 “无法识别的格式”。
  3. 权限不足:若打包 / 解压的文件涉及系统目录(如 /root/),需用 sudo 提升权限,否则会提示 “Permission denied”。

  4. 避免覆盖文件:解压时若目标文件已存在,tar 会默认提示是否覆盖(y/n),若需强制覆盖且不提示,可加 -o 选项(tar -zxvfo archive.tar.gz)。

六、总结

tar 命令的核心是通过 -c(打包)、-x(解压)、-t(查看)三个操作选项,配合 -z/-j/-J(压缩算法)和 -f(指定文件)实现功能。日常使用中,最频繁的组合是:

  • 打包 + gzip 压缩:tar -zcvf 目标.tar.gz 源
  • 解压 tar.gz:tar -zxvf 源.tar.gz
  • 查看 tar 包内容:tar -tvf 源.tar


上传和下载

在 Linux 中,文件的 “上传”(本地→远程)和 “下载”(远程→本地)通常指通过网络协议(如 SSH、FTP)或网络链接(HTTP/HTTPS)传输文件,常用工具包括 scpsftprsync(基于 SSH)以及 wgetcurl(网络下载)等。以下是详细介绍:

一、基于 SSH 的文件传输(最常用,适合服务器间 / 本地 - 服务器)

SSH 协议是 Linux 系统默认开启的远程管理协议,基于 SSH 的文件传输工具scpsftprsync无需额外配置服务,直接使用服务器的 SSH 权限(用户名 + 密码或密钥)即可传输,安全性高。

1. scp(简单直接的 SSH 文件拷贝)

scp(secure copy)是基于 SSH 的文件拷贝工具,语法类似 cp,支持本地与远程、远程与远程之间的文件 / 目录传输,特点是 “一次命令完成传输”,适合简单场景。

基本语法
# 本地 → 远程
scp [选项] 本地文件/目录 远程用户@远程IP:远程路径# 远程 → 本地
scp [选项] 远程用户@远程IP:远程文件/目录 本地路径
核心选项
  • -r:递归传输目录(必须加,否则无法传输目录)。
  • -P(大写):指定远程 SSH 端口(默认 22,若服务器端口非 22 需指定,如 -P 2222)。
  • -v:显示传输进度和详细信息(排查错误用)。
  • -p:保留文件原始权限(如修改时间、权限等)。
示例
  1. 本地文件上传到远程:将本地 ~/docs/report.pdf 上传到远程服务器 192.168.1.100 的 /home/user/files/ 目录(远程用户为 ubuntu):

    scp ~/docs/report.pdf ubuntu@192.168.1.100:/home/user/files/
    

    回车后输入远程用户 ubuntu 的密码(或密钥密码,若用密钥登录)。

  2. 远程文件下载到本地:将远程服务器 192.168.1.100 的 /var/log/syslog 下载到本地 ~/logs/ 目录:

    scp ubuntu@192.168.1.100:/var/log/syslog ~/logs/
    
  3. 传输目录(必须加 -r):上传本地 ~/projects/ 目录到远程 /home/user/backups/

    scp -r ~/projects/ ubuntu@192.168.1.100:/home/user/backups/
    
  4. 指定非默认 SSH 端口(如端口 2222)下载远程服务器(端口 2222)的 /data/file.tar.gz 到本地当前目录:

    scp -P 2222 ubuntu@192.168.1.100:/data/file.tar.gz ./
    

2. sftp(交互式 SSH 文件传输)

sftp(secure FTP)是基于 SSH 的交互式文件传输工具,类似 FTP 的操作方式(支持cdls等目录操作),适合需要多次上传 / 下载、或需要先浏览远程目录再传输的场景。

基本用法
  1. 连接远程服务器

    sftp 远程用户@远程IP  # 默认端口22
    # 非默认端口:sftp -P 2222 远程用户@远程IP
    

    连接成功后进入 sftp> 交互模式。

  2. 常用交互命令

    命令作用示例
    ls [路径]列出远程目录文件(默认当前目录)ls /home/user/docs
    cd 路径切换远程目录cd /var/www
    lls [路径]列出本地目录文件(加l表示 local)lls ~/downloads
    lcd 路径切换本地目录lcd ~/downloads
    put 本地文件上传本地文件到远程当前目录put ~/report.txt
    put -r 本地目录递归上传本地目录(加-rput -r ~/photos
    get 远程文件下载远程文件到本地当前目录get /var/log/nginx/access.log
    get -r 远程目录递归下载远程目录(加-rget -r /var/www/html
    rm 远程文件删除远程文件rm old.txt
    exit 或 quit退出 sftp 交互模式exit
示例

上传本地 ~/music/ 目录到远程 /home/user/media/,并下载远程 notes.txt 到本地 ~/docs/

# 1. 连接远程服务器
sftp ubuntu@192.168.1.100# 2. 切换远程目标目录(上传到这里)
sftp> cd /home/user/media/# 3. 切换本地源目录(要上传的文件在这里)
sftp> lcd ~/music/# 4. 上传本地目录(递归)
sftp> put -r .  # "." 表示当前本地目录的所有内容# 5. 下载远程文件到本地~/docs/
sftp> lcd ~/docs/  # 切换本地下载目录
sftp> get /home/user/notes.txt  # 下载远程notes.txt# 6. 退出
sftp> exit

3. rsync(高效增量传输,适合备份)

rsync 是一款高效的文件同步工具,支持本地 / 远程同步,核心特点是增量传输(仅传输变化的文件),速度快、带宽占用低,适合大量文件或频繁备份场景(配合crontab可实现定时备份)。

基本语法(远程传输)
# 本地 → 远程(同步本地目录到远程)
rsync [选项] 本地目录/ 远程用户@远程IP:远程目录/# 远程 → 本地(同步远程目录到本地)
rsync [选项] 远程用户@远程IP:远程目录/ 本地目录/
核心选项(必记)
  • -a:归档模式(最常用),等价于 -rlptgoD,即递归传输目录、保留权限、时间戳、所有者等(几乎必加)。
  • -v:显示传输过程的详细信息。
  • -z:传输时压缩数据(节省带宽,适合网络传输)。
  • --progress:显示每个文件的传输进度(百分比、速度等)。
  • -P:等价于 --partial --progress,支持断点续传(传输大文件中断后,下次可继续)。
  • --delete:删除目标目录中 “源目录没有” 的文件(保持完全一致,谨慎使用!)。
示例
  1. 同步本地目录到远程(增量传输)将本地 ~/data/ 目录同步到远程 192.168.1.100 的 /backup/data/,显示进度并压缩传输:

    rsync -avz --progress ~/data/ ubuntu@192.168.1.100:/backup/data/
    

    (注意:本地目录后加 / 表示 “传输目录内的内容”,不加则传输目录本身,根据需求选择)。

  2. 从远程同步到本地(断点续传大文件)下载远程 /large_files/video.iso 到本地 ~/downloads/,支持断点续传并显示进度:

    rsync -avzP ubuntu@192.168.1.100:/large_files/video.iso ~/downloads/
    
  3. 保持两地目录完全一致(谨慎!)让本地 ~/web/ 与远程 /var/www/ 完全一致(删除本地多出的文件):

    rsync -avz --delete ubuntu@192.168.1.100:/var/www/ ~/web/
    

    --delete 会删除本地 ~/web/ 中远程没有的文件,建议先不加该选项测试)。

二、从网络下载文件(HTTP/HTTPS/FTP)

如果文件位于网络地址(如官网下载链接、FTP 服务器),常用 wget 和 curl 工具下载,无需远程服务器账号,直接通过 URL 获取。

1. wget(专注下载的工具)

wget 是 Linux 默认预装的下载工具,支持 HTTP、HTTPS、FTP 协议,特点是支持断点续传、后台下载,适合大文件。

常用选项
  • -O 文件名:指定下载后的文件名(默认用 URL 中的文件名)。
  • -c:断点续传(文件下载中断后,继续下载未完成部分)。
  • -b:后台下载(适合 SSH 连接中下载大文件,断开连接不影响)。
  • -P 目录:指定下载到哪个目录(默认当前目录)。
示例
  1. 下载文件到当前目录(默认文件名):

    wget https://example.com/software.tar.gz
    
  2. 指定下载文件名和目录:下载到 ~/tools/ 目录,并重命名为 app.tar.gz

    wget -O ~/tools/app.tar.gz https://example.com/software.tar.gz
    
  3. 断点续传大文件:

    wget -c https://example.com/large_file.iso
    
  4. 后台下载并记录日志:

    wget -b -o download.log https://example.com/big.zip
    # 日志保存在download.log,可用tail -f download.log查看进度
    

2. curl(多功能工具,支持下载 / 上传)

curl 是一款功能更全面的网络工具(不仅用于下载),支持 HTTP、HTTPS、FTP 等,还能发送 API 请求、模拟表单提交等。下载文件时需要显式指定输出文件。

下载常用选项
  • -o 文件名:指定下载后的文件名(小写 o)。
  • -O:使用 URL 中的文件名保存(大写 O,默认)。
  • -C -:断点续传(与 wget 的-c类似)。
示例
  1. 下载文件并指定名称:

    curl -o app.tar.gz https://example.com/software.tar.gz
    
  2. 用 URL 原名保存:

    curl -O https://example.com/software.tar.gz  # 保存为software.tar.gz
    
  3. 断点续传:

    curl -C - -O https://example.com/large_file.iso
    
  4. 下载需要登录的文件(带 Cookie):某些网站需要登录后才能下载,可通过 -b 携带 Cookie:

    curl -b "session_id=xxx" -O https://example.com/private/file.zip
    

三、工具对比与选择建议

工具适用场景优势不足
scp简单的单文件 / 目录传输(本地 - 远程)语法简单,一次命令完成不支持增量传输,大文件重传效率低
sftp交互式多次上传 / 下载,需浏览远程目录支持目录导航,操作灵活不适合脚本自动化(交互式)
rsync大量文件、频繁同步、备份(增量传输)增量传输,速度快,支持断点续传语法稍复杂,需注意目录末尾的/
wget从网络 URL 下载文件(HTTP/HTTPS/FTP)专注下载,支持后台、断点续传功能单一,仅支持下载
curl网络下载、API 请求、表单提交等多功能场景功能全面,支持多种协议和请求方式下载时需手动指定输出文件

根据场景选择:

  • 简单传输单个文件 / 目录 → 用 scp
  • 需要多次交互操作 → 用 sftp
  • 备份、大量文件或增量同步 → 用 rsync
  • 从网络链接下载 → 优先 wget(简单),复杂场景(如带 Cookie)用 curl

http://www.dtcms.com/a/601246.html

相关文章:

  • 【动态规划】专题完结,题单汇总
  • 微信公众好第三方网站怎么做wordpress订阅关闭
  • 网站logo上传建筑室内设计软件
  • Linux环境下Nginx核心总结与密码验证实践
  • python实战:装饰模式详解
  • 一个基于TCP/IP接收数据并通过API推送数据的小工具
  • 经典网站建设案例wordpress讨论区插件
  • 具身记忆大展拳脚
  • Java语言编译器 | 深入了解Java编译过程与优化技巧
  • 实时开发平台(Streampark)--Flink SQL功能演示
  • 最近做网站开发有前途没wordpress主题特色功能
  • 深度学习_神经网络初始化参数方法
  • 程序设计语言编译原理 | 深入解析编译原理与语言设计的关系
  • MATLAB基于遗传算法的债券投资组合优化
  • 网站建设背景和目标建设部网站资质查询
  • Flask 和 Django 的详细对比
  • 给网站做网络安全的报价全国大学生平面设计大赛
  • 35搜索插入位置
  • [AI tradingOS] trader_manager.go | API集中控制_handleStartTrader
  • LeetCode算法学习之前K个高频元素
  • 主流 LLM 推理/部署框架指标对比
  • 大模型上下文窗口详解与 RNN/Transformer 架构比较
  • C语言编译过程五个步骤 | 深入了解C语言编译的每个环节
  • seo建站需求海洋cms做电影网站好做吗
  • 个人网站建设素材广告制作合同范本
  • 新版 reese84 vmp 补环境逆向分析
  • 恢复数字序列 od
  • linux正则匹配
  • 【1.9】基于FPGA的costas环开发3——解调端低通滤波器模块
  • C语言编译器及其优化技术