cp、scp、rsync下令详解
1. cp下令(本地复制)根本用法
cp [选项] 源文件 目标文件
cp [选项] 源文件... 目录常用选项
cp file1.txt file2.txt # 复制文件
cp file.txt /path/to/directory/ # 复制到目录
cp -r dir1/ dir2/ # 递归复制目录
cp -i file1 file2 # 交互式(覆盖前询问)
cp -u source dest # 仅更新(源比目标新时复制)
cp -v file1 file2 # 显示详细信息
cp -p file1 file2 # 保留权限、时间等属性
cp -a dir1/ dir2/ # 归档模式(保留所有属性)示例
# 基本复制
cp document.pdf backup.pdf
# 复制目录
cp -r photos/ backup_photos/
# 保留所有属性
cp -a project/ project_backup/
# 复制多个文件到目录
cp file1.txt file2.txt /tmp/2. scp下令(安全远程复制)
根本语法
scp [选项] [[用户@]主机1:]文件1 [[用户@]主机2:]文件2常用选项
-r # 递归复制目录
-P # 指定端口(注意是大写P)
-p # 保留文件属性
-C # 启用压缩
-q # 静默模式
-v # 详细输出(调试用)示例
# 本地 → 远程
scp file.txt user@remote:/path/
scp -r dir/ user@remote:/path/
# 远程 → 本地
scp user@remote:/path/file.txt ./
scp user@remote:/path/dir/ ./ -r
# 远程 → 远程
scp user1@host1:/file user2@host2:/path
# 指定端口
scp -P 2222 file.txt user@remote:/path
# 压缩传输(适合大文件)
scp -C largefile.iso user@remote:/path3. rsync下令(高级同步工具)
根本语法
rsync [选项] 源 目标焦点选项
-a, --archive # 归档模式(-rlptgoD)
-v, --verbose # 详细输出
-z, --compress # 传输时压缩
-r, --recursive # 递归目录
-u, --update # 仅更新(跳过更新的文件)
--progress # 显示传输进度
--delete # 删除目标中源没有的文件
--exclude=PATTERN # 排除文件/目录
--include=PATTERN # 包含文件/目录
-e, --rsh=COMMAND # 指定远程shell(如ssh)常用模式示例
本地同步
# 基本同步(保留属性)
rsync -av source/ destination/
# 删除目标中多余的文件
rsync -av --delete source/ destination/
# 排除特定文件
rsync -av --exclude='*.tmp' source/ destination/
rsync -av --exclude={'*.log','temp/'} source/ destination/
# 只同步特定文件类型
rsync -av --include='*.txt' --include='*/' --exclude='*' source/ destination/远程同步
# 本地 → 远程
rsync -avz /local/path/ user@remote:/remote/path/
# 远程 → 本地
rsync -avz user@remote:/remote/path/ /local/path/
# 使用SSH密钥和特定端口
rsync -avz -e "ssh -p 2222 -i ~/.ssh/key.pem" source/ user@remote:/path/
# 带宽限制(KB/s)
rsync -avz --bwlimit=1000 largefile/ user@remote:/path/高级用法
# 干运行(测试不实际执行)
rsync -avn source/ destination/
# 部分传输(支持断点续传)
rsync -avz --partial source/ destination/
# 比较模式(显示差异)
rsync -avnc source/ destination/
# 备份(创建带时间戳的备份)
rsync -av --backup --backup-dir=/backup/old-$(date +%Y%m%d) source/ destination/三者的对比
特性cpscprsync用途本地复制远程安全复制高效同步/复制传输方向本地→本地本地↔远程本地↔本地/远程增量传输❌ 不支持❌ 不支持✅ 支持断点续传❌ 不支持❌ 不支持✅ 支持压缩传输❌ 不支持✅ 支持✅ 支持生存属性✅ 支持✅ 支持✅ 支持删除同步❌ 不支持❌ 不支持✅ 支持服从高中非常高(增量时)利用场景发起
利用 cp 当:
[*]简朴的本地文件复制
[*]快速复制小文件/目次
[*]不必要网络传输
利用 scp 当:
[*]简朴的远程文件传输
[*]一次性传输任务
[*]必要SSH加密的安全传输
利用 rsync 当:
[*]必要增量同步(只传输厘革部门)
[*]大文件或大量文件的传输
[*]必要断点续传功能
[*]定期备份任务
[*]必要删除目标多余文件
[*]必要复杂的包罗/扫除规则
实用本事
[*]rsync作为高级cp:
# 比cp -a更详细且可恢复
rsync -av --progress source/ destination/
[*]定时备份脚本:
# 每天同步并保留7天备份
rsync -av --delete --backup \
--backup-dir=/backup/$(date +%Y%m%d) \
/data/ /backup/latest/
[*]快速对比目次:
rsync -avnc dir1/ dir2/
[*]扫除列表文件:
rsync -av --exclude-from='exclude-list.txt' source/ dest/
选择哪个下令取决于具体需求:简朴复制用cp,简朴远程传输用scp,复杂同步和备份用rsync。
免责声明:如果侵犯了您的权益,请联系站长及时删除侵权内容,谢谢合作!qidao123.com:ToB企服之家,中国第一个企服评测及软件市场,开放入驻,技术点评得现金.
页:
[1]