将 Linux 虚拟机中的文件导出到外部存储(如硬盘、USB、网络存储等)是一个常见的需求。以下是几种常见的方法,适用于大多数 Linux 发行版:
✅ 方法一:使用 scp(SSH 远程复制)
如果你有 SSH 访问权限,可以使用 scp 命令将文件从虚拟机复制到本地:
scp user@remote_host:/path/to/file /local/path/to/save
示例:
scp user@192.168.1.100:/home/user/data.txt /home/localuser/
说明:
user@remote_host:SSH 用户名和远程主机地址/path/to/file:远程文件路径/local/path/to/save:本地保存路径
✅ 方法二:使用 rsync(更高效)
rsync 是更高效的文件复制工具,支持增量备份和断点续传:
rsync -avz user@remote_host:/path/to/dir/ /local/path/to/save/
说明:
-a:归档模式(保留文件属性)-v:显示详细信息-z:压缩数据-i:不显示进度条(可选)
✅ 方法三:使用 ftp 或 sftp
如果你使用的是 FTP 或 SFTP 服务,可以使用 ftp 或 sftp 命令进行文件传输:
ftp remote_host
然后使用 get 或 put 命令传输文件:
get /path/to/file
✅ 方法四:使用 USB 存储设备
如果你有 USB 存储设备,可以将虚拟机中的文件复制到 USB:
-
在虚拟机中挂载 USB 设备:
sudo mount /dev/sdb1 /mnt/usb -
将文件复制到 USB:
cp -r /path/to/file /mnt/usb/ -
卸载 USB:
sudo umount /mnt/usb
✅ 方法五:使用 tar 做归档
如果你需要将整个目录打包并导出:
tar -czvf archive.tar.gz /path/to/dir/
然后将 archive.tar.gz 传输到本地。
✅ 方法六:使用 netcat 或 nc(网络传输)
如果你需要将文件通过网络传输到本地:
nc -z -v remote_host 22
然后使用 scp 或 rsync 进行传输。
✅ 方法七:使用 virtiofs(适用于虚拟机)
如果你在使用虚拟机(如 VMware、VirtualBox),可以使用 virtiofs 模块来挂载虚拟文件系统,然后复制文件。
✅ 总结:常用方法
| 方法 | 适用场景 | 优点 |
|---|---|---|
scp |
SSH 连接 | 快速、简单 |
rsync |
高效、增量 | 支持断点续传 |
ftp/sftp |
FTP/SFTP 服务 | 通用、支持大文件 |
| USB 存储 | 直接连接 | 无需网络,方便 |
如果你有具体的虚拟机环境(如 VMware、VirtualBox、KVM 等),我可以提供更具体的步骤。需要我帮你生成一个脚本吗?


