目录

cp scp rsync

目录

文件复制 cp。安全复制 scp。远程数据同步工具 rsync。

cp

将源文件或目录复制到目标文件或目录中

选项

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
-a:此参数的效果和同时指定"-dpR"参数相同;
-d:当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录;
-f:强行复制文件或目录,不论目标文件或目录是否已存在;
-i:覆盖既有文件之前先询问用户;
-l:对源文件建立硬连接,而非复制文件;
-p:保留源文件或目录的属性;
-R/r:递归处理,将指定目录下的所有文件与子目录一并处理;
-s:对源文件建立符号连接,而非复制文件;
-u:使用这项参数后只会在源文件的更改时间较目标文件更新时或是名称相互对应的目标文件并不存在时,才复制文件;
-S:在备份文件时,用指定的后缀“SUFFIX”代替文件的默认后缀;
-b:覆盖已存在的文件目标前将目标文件备份;
-v:详细显示命令执行的操作。
1
2
3
4
5
6
7
# 将指定文件复制到当前目录下
cp ../abc/xyz.txt .
cp aaa.conf ./
# 将目录/usr/men下所有文件及其子目录复制到/usr/zh
cp -r /usr/men /usr/zh
### 将 aaa 目录下的所有 a 开头的文件复制到目录 bbb 中
cp aaa/a*  bbb

scp

scp 是 secure copy 的缩写, scp 是 linux 系统下基于 ssh 登陆进行安全的远程文件拷贝命令。

  • -P 指定数据传输用到的端口号,默认22
  • -r 递归复制整个目录
1
2
3
4
# 本地复制到远程
scp local_file remote_username@remote_ip:remote_folder 
## 远程复制到本地
scp -r remote_username@remote_ip:remote_folder  local_folder

rsync

远程数据同步工具

  • 拷贝本地文件。当SRC和DES路径信息都不包含有单个冒号":“分隔符时就启动这种工作模式。如:rsync -a /data /backup
  • 使用一个远程shell程序(如rsh、ssh)来实现将本地机器的内容拷贝到远程机器。当DST路径地址包含单个冒号”:“分隔符时启动该模式。如:rsync -avz *.c foo:src
  • 使用一个远程shell程序(如rsh、ssh)来实现将远程机器的内容拷贝到本地机器。当SRC地址路径包含单个冒号”:“分隔符时启动该模式。如:rsync -avz foo:src/bar /data
  • 从远程rsync服务器中拷贝文件到本地机。当SRC路径信息包含”::“分隔符时启动该模式。如:rsync -av root@192.168.78.192::www /databack
  • 从本地机器拷贝文件到远程rsync服务器中。当DST路径信息包含”::“分隔符时启动该模式。如:rsync -av /databack root@192.168.78.192::www
  • 列远程机的文件列表。这类似于rsync传输,不过只要在命令中省略掉本地机信息即可。如:rsync -v rsync://192.168.78.192/www
1
2
3
# -r recurse into directories
alias pcp='rsync -r --progress'
pcp /Volumes/XiaoMi/下载/abc /Volumes/All/abc