linux虚拟机如何复制文件
linux虚拟机如何复制文件详细介绍
在 Linux 虚拟机中复制文件主要分为两种场景:虚拟机内部文件复制和虚拟机与主机 / 其他设备之间的文件传输。以下是具体操作方法:
一、虚拟机内部文件复制(本地操作)
在 Linux 系统中,本地文件复制主要通过 cp 命令完成,基础语法为:
bash
选项 源文件/目录 目标路径
常用操作示例:
- 复制单个文件
将/home/user/doc.txt复制到/tmp目录:
bash/home/user/doc.txt /tmp - 复制目录(需递归)
将/home/user/project目录复制到/backup目录(-r表示递归复制目录及子文件):
bash/home/user/project /backup - 覆盖时保留原文件(备份)
复制时若目标路径已有同名文件,添加-b选项会自动备份原文件(如doc.txt~):
bash/home/user/doc.txt /tmp - 显示复制过程(详细模式)
使用-v选项查看复制进度:
bash/home/user/*.pdf /mnt/usb
二、虚拟机与主机 / 其他设备之间的文件传输
若需在虚拟机和物理主机(或其他设备)之间复制文件,需根据虚拟机软件类型或网络环境选择方法。
方法 1:通过虚拟机工具(推荐)
如果虚拟机是 VMware 或 VirtualBox,可通过安装增强工具实现文件共享:
- VMware 虚拟机:
安装VMware Tools后,主机和虚拟机可直接复制粘贴文件,或通过「共享文件夹」功能(在虚拟机设置中配置共享路径)。 - VirtualBox 虚拟机:
安装Guest Additions(设备 → 安装增强功能)后,启用「共享文件夹」(设置 → 共享文件夹),虚拟机中可通过/media/sf_共享名路径访问主机文件。
方法 2:通过网络传输(通用方案)
若未安装增强工具,或需跨网络复制(如虚拟机作为远程服务器),可使用以下工具:
1. scp(安全复制协议)
适用于主机与虚拟机通过网络连接的场景(需知道虚拟机 IP 地址)。
- 从主机复制到虚拟机(需在主机终端操作):bash
主机文件路径 虚拟机用户@虚拟机IP:虚拟机目标路径/home/pc/file.txt ubuntu@192.168.1.100:/tmp
- 从虚拟机复制到主机(需在主机终端操作):bash
虚拟机用户@虚拟机IP:虚拟机文件路径 主机目标路径ubuntu@192.168.1.100:/home/ubuntu/data.zip /Downloads
2. sftp(安全文件传输协议)
通过交互式命令行传输文件,支持上传、下载、查看目录等操作:
bash
虚拟机用户@虚拟机IP
put 主机文件路径 虚拟机目标路径
get 虚拟机文件路径 主机目标路径
3. rsync(增量复制,适合大文件 / 目录)
支持保留文件属性(如权限、时间戳),且仅复制变化的部分,效率更高:
bash
主机目录/ 虚拟机用户@虚拟机IP:虚拟机目标目录/
虚拟机用户@虚拟机IP:虚拟机目录/ 主机目标目录/
三、注意事项
- 若虚拟机网络为「NAT 模式」,需确保主机能通过 IP 访问虚拟机(可通过
ifconfig或ip addr查看虚拟机 IP)。 - 远程传输时需确保虚拟机已安装
openssh-server(通过sudo apt install openssh-server安装,适用于 Debian/Ubuntu 系)。 - 复制大文件时,建议使用
rsync或scp并添加-P选项(显示进度)。
根据你的具体场景(本地复制或跨设备传输),选择合适的方法即可完成文件复制。