一、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。它们各自有不同的使用场景和选项,用户可以根据需要选择适合自己的命令。