插件窝 干货文章 linux常用命令cp怎么用

linux常用命令cp怎么用

复制 文件 目录 cp 891    来源:    2025-04-03

cp 是 Linux 中用于复制文件或目录的核心命令,功能强大且灵活。以下是详细用法和常见场景示例:


基本语法

cp [选项] 源文件 目标文件
cp [选项] 源文件... 目标目录

常用选项

选项 作用
-i 覆盖前提示确认(交互模式)
-r/-R 递归复制目录(必选)
-v 显示复制过程(verbose)
-u 仅复制源比目标更新的文件
-p 保留文件属性(权限、时间戳)
-a 归档模式(相当于 -rp,保留所有信息)
-l 创建硬链接而非复制
-s 创建符号链接(软链接)

常见场景示例

  1. 复制文件到目标路径

    cp file.txt /backup/           # 复制到目录,保持原名
    cp file.txt /backup/new.txt    # 复制并重命名
    
  2. 复制目录(必须加 -r

    cp -r /data/logs /backup/      # 递归复制整个目录
    
  3. 交互模式(避免覆盖)

    cp -i *.txt /backup/           # 覆盖前询问
    
  4. 保留文件属性(权限、时间)

    cp -p important.conf /etc/     # 保留原属性
    cp -a /home/user /backup/      # 归档模式(常用于完整备份)
    
  5. 仅更新较新的文件

    cp -u *.sh /scripts/           # 仅复制比目标更新的文件
    
  6. 创建链接而非复制

    cp -s /var/log/messages ~/     # 创建软链接(节省空间)
    cp -l bigfile.dat ~/           # 创建硬链接
    

注意事项

  • 覆盖风险:默认静默覆盖文件,建议重要操作前加 -i 或使用 alias cp='cp -i'
  • 通配符:支持 *? 匹配多个文件(如 cp *.jpg /images/)。
  • 权限问题:若目标目录无写入权限,会报错 Permission denied

高级技巧

# 复制时排除特定文件
rsync -av --exclude='*.tmp' /source/ /dest/  # 需安装 rsync

# 显示实时进度(大文件时)
cp -v bigfile.iso /backup/ | pv -lep -s $(du -sb bigfile.iso | awk '{print $1}')

掌握这些用法后,cp 可以应对绝大多数复制需求!遇到特殊场景可结合 man cp 查阅手册。