您的位置:

Linux复制命令详解

一、cp命令

cp命令是最基本的Linux复制命令。它用于从一个位置复制一个或多个文件到另一个位置。

命令语法:

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

选项:

  • -i:如果目标文件已经存在,则提示用户是否覆盖。
  • -r:递归复制整个目录。
  • -v:在复制文件时显示详细信息。

示例:

cp file1.txt /home/user/     # 复制文件到指定目录下
cp -i file1.txt file2.txt    # 复制文件并判断是否覆盖
cp -rv dir1/ dir2/           # 复制整个目录及其子目录

二、scp命令

scp命令用于在不同的主机之间复制文件和目录。

命令语法:

scp [-12346BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file] [-l limit] [-o ssh_option] [-P port] [-S program] source_file destination_file

选项:

  • -1:使用SSH协议版本1。
  • -2:使用SSH协议版本2。
  • -3:将两个远程主机连接起来,直接将数据从一个主机传输到另一个主机。
  • -4:强制使用IPv4地址。
  • -6:强制使用IPv6地址。
  • -B:以批量模式运行。
  • -C:启用压缩。
  • -p:保留源文件的权限和时间戳。
  • -q:禁止打印连接进度。
  • -r:递归复制整个目录。
  • -V:打印详细输出信息。

示例:

scp file1.txt user@example.com:/home/user/      # 复制文件到远程主机
scp -r dir1/ user@example.com:/home/user/dir2/  # 复制目录到远程主机
scp -P 2222 file1.txt user@example.com:/home/user/  # 指定SSH端口复制文件到远程主机

三、rsync命令

rsync命令是一个高效的复制工具,支持本地、远程、增量、压缩等多种模式。

命令语法:

rsync [OPTIONS] SRC DEST

选项:

  • -a:以归档模式复制,保留文件的所有权限、时间戳等。
  • -r:递归复制目录。
  • -v:打印详细输出。
  • -z:启用数据压缩。
  • --progress:显示复制进度。
  • --delete:删除目标目录中不存在的源文件或目录。
  • --exclude:排除指定文件或目录。

示例:

rsync -azv file1.txt /tmp/             # 复制文件到本地目录
rsync -azv dir1/ user@example.com:/home/user/   # 复制目录到远程主机
rsync -azv --delete dir1/ /tmp/        # 复制目录并删除目标目录中不存在的文件

四、dd命令

dd命令是一款强大的磁盘复制和转换工具,可以复制原始数据块。

命令语法:

dd [if=input文件] [of=output文件] [bs=块大小] [count=块数]

示例:

dd if=/dev/sda of=/dev/sdb    # 将/dev/sda磁盘复制到/dev/sdb中
dd if=/dev/zero of=file.txt bs=1M count=10   # 生成10MB的空文件

五、总结

本文介绍了Linux常见的复制命令,包括cp、scp、rsync和dd。它们各自有不同的使用场景和选项,用户可以根据需要选择适合自己的命令。