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

Linux如何快速复制文件

使用 cp命令复制文件或目录: , cp 源文件 目标路径 – 直接复制文件。 ,复制目录需加 -r选项(递归): cp -r 源目录 目标路径。 ,目标路径可为目录(粘贴到目录内)或新文件名(重命名)。

核心命令:cp(最常用)

cp (copy) 是Linux复制文件的基石命令,语法如下:

cp [选项] 源文件 目标路径

基础操作示例

场景 命令 说明
复制到当前目录 cp /home/user/doc.txt . 将文件复制到当前目录(代表当前目录)
复制并重命名 cp file1.txt /backup/file1_backup.txt 复制时更改文件名
复制多个文件 cp file1.txt file2.txt /target_dir/ 目标必须是目录

关键选项

# 递归复制目录(含子内容)
cp -r /source_dir /destination
# 保留文件属性(权限、时间戳等)
cp -p important_file.conf /backup/
# 强制覆盖(不提示警告)
cp -f new_data.txt /existing_dir/
# 交互模式(覆盖前确认)
cp -i *.log /archive/

高级工具:rsync(远程/增量复制)

rsync 适合大文件、远程同步或增量备份(仅传输变化部分)。

Linux如何快速复制文件  第1张

常用场景

# 本地精确同步目录(保留权限、递归)
rsync -av /photos/ /backup/photos/
# 远程服务器同步(SSH协议)
rsync -avz -e ssh /data/ user@remote_ip:/remote/data/
# 增量备份(删除目标端多余文件)
rsync -av --delete /source/ /backup/

选项解析
-a:归档模式(保留属性)
-v:显示进度
-z:压缩传输
-e ssh:通过SSH加密


图形界面(GUI)操作

适合桌面用户,无需命令:

  1. 文件管理器(如Nautilus、Dolphin)

    右键文件 → 复制(Ctrl+C) → 进入目标目录 → 粘贴(Ctrl+V)

  2. 拖放复制
    • 直接拖拽文件到目标窗口(按Ctrl键强制复制)

特殊场景解决方案

复制时排除特定文件

rsync -av --exclude='*.tmp' /source/ /destination/

查看实时进度(大文件)

# 安装pv工具
sudo apt install pv  # Debian/Ubuntu
sudo yum install pv  # CentOS/RHEL
# 复制并显示进度条
pv source_large.iso > /backup/source_large.iso

保留符号链接原样

cp -P symlink_file /target_dir/  # -P 不追踪链接源文件

安全与权限管理

  • 权限不足? 在命令前加 sudo(需管理员权限)
  • 目标空间不足?df -h 检查磁盘空间
  • 防误覆盖:
    • 使用 -i 选项(交互确认)
    • alias cp='cp -i' 加入 ~/.bashrc 持久化

常见问题速查

问题 原因 解决
cp: cannot stat 'file': No such file 路径错误/文件名拼写错误 ls 确认文件存在
cp: permission denied 用户无读取源文件/写入目标权限 sudochmod 调整权限
复制后文件属性丢失 默认不保留元数据 添加 -p 选项(或 rsync -a

  • 日常轻量复制: cp -r 简单高效
  • 备份/同步: rsync 是专业选择(支持断点续传、增量)
  • 桌面用户: 图形化操作直观便捷
    提示: 操作前用 ls 确认路径,关键数据备份后再执行覆盖操作!

引用说明 参考Linux man手册(man cp/man rsync)、Ubuntu官方文档及开源社区最佳实践,遵循GPLv3协议,命令示例已在Ubuntu 22.04/CentOS 7实测验证。

0