linux scp命令 相同文件

作者&投稿:革国 (若有异议请与网页底部的电邮联系)
linux下scp进行远程复制的时候,如果有同样文件存在,它默认是怎么处理的?~

[root@local temp]# hostname
local.example.com
[root@local temp]# ls
[root@local temp]# echo 123 > test.txt
[root@local temp]# cat test.txt
123
[root@local temp]# ssh root@remote
Last login: Thu Apr 19 09:33:45 2012
[root@remote ~]# cd /tmp/
[root@remote tmp]# touch test.txt
[root@remote tmp]# cat test.txt
[root@remote tmp]# exit
logout
Connection to remote closed.
[root@local temp]# scp test.txt root@remote:/tmp
test.txt 100% 4 0.0KB/s 00:00
[root@local temp]# ssh root@remote
Last login: Thu Apr 19 19:59:13 2012 from remote.example.com
[root@remote ~]# cd /tmp/
[root@remote tmp]# ls
test.txt
[root@remote tmp]# cat test.txt
123
[root@remote tmp]#


是直接覆盖的

1、使用cp命令的-n参数即可跳过相同的文件 。

2、cp命令使用详解:
1)、用法:cp [选项]... [-T] 源文件 目标文件

 或:cp [选项]... 源文件... 目录
 或:cp [选项]... -t 目录 源文件...
将源文件复制至目标文件,或将多个源文件复制至目标目录。


2)、长选项必须使用的参数对于短选项时也是必需使用的。
-a, --archive等于-dR --preserve=all
--backup[=CONTROL为每个已存在的目标文件创建备份
-b类似--backup 但不接受参数
--copy-contents在递归处理是复制特殊文件内容
-d等于--no-dereference --preserve=links
-f, --force如果目标文件无法打开则将其移除并重试(当 -n 选项
存在时则不需再选此项)
-i, --interactive覆盖前询问(使前面的 -n 选项失效)
-H跟随源文件中的命令行符号链接
-l, --link链接文件而不复制
-L, --dereference总是跟随符号链接
-n, --no-clobber不要覆盖已存在的文件(使前面的 -i 选项失效)
-P, --no-dereference不跟随源文件中的符号链接
-p等于--preserve=模式,所有权,时间戳
--preserve[=属性列表保持指定的属性(默认:模式,所有权,时间戳),如果
可能保持附加属性:环境、链接、xattr 等
-c same as --preserve=context
--sno-preserve=属性列表不保留指定的文件属性
--parents复制前在目标目录创建来源文件路径中的所有目录
-R, -r, --recursive递归复制目录及其子目录内的所有内容
--reflink[=WHEN]控制克隆/CoW 副本。请查看下面的内如。
--remove-destination尝试打开目标文件前先删除已存在的目的地
文件 (相对于 --force 选项)
--sparse=WHEN控制创建稀疏文件的方式
--strip-trailing-slashes删除参数中所有源文件/目录末端的斜杠
-s, --symbolic-link只创建符号链接而不复制文件
-S, --suffix=后缀自行指定备份文件的后缀
-t, --target-directory=目录将所有参数指定的源文件/目录
复制至目标目录
-T, --no-target-directory将目标目录视作普通文件
-u, --update copy only when the SOURCE file is newer
than the destination file or when the
destination file is missing
-v, --verbose explain what is being done
-x, --one-file-system stay on this file system
-Z, --context=CONTEXT set security context of copy to CONTEXT
--help显示此帮助信息并退出
--version显示版本信息并退出


3)、默认情况下,源文件的稀疏性仅仅通过简单的方法判断,对应的目标文件目标文件也
被为稀疏。这是因为默认情况下使用了--sparse=auto 参数。如果明确使用
--sparse=always 参数则不论源文件是否包含足够长的0 序列也将目标文件创文
建为稀疏件。
使用--sparse=never 参数禁止创建稀疏文件。


4)、当指定了--reflink[=always] 参数时执行轻量化的复制,即只在数据块被修改的
情况下才复制。如果复制失败或者同时指定了--reflink=auto,则返回标准复制模式。


5)、备份文件的后缀为"~",除非以--suffix 选项或是SIMPLE_BACKUP_SUFFIX
环境变量指定。版本控制的方式可通过--backup 选项或VERSION_CONTROL 环境
变量来选择。以下是可用的变量值:


none, off 不进行备份(即使使用了--backup 选项)
numbered, t 备份文件加上数字进行排序
existing, nil 若有数字的备份文件已经存在则使用数字,否则使用普通方式备份
simple, never 永远使用普通方式备份


6)、有一个特别情况:如果同时指定--force 和--backup 选项,而源文件和目标文件
是同一个已存在的一般文件的话,cp 会将源文件备份。

我看了下scp的man手册页,发现没有参数支持跳过相同文件,sorry
你用scp应该是在不同机子上复制,不过你可以通过scp先拷贝到目标主机另外
一个目录,然后通过/bin/cp命令拷贝到到最终的目标目录,因为cp在系统中
使用了别名,所以你要使用/bin/cp而不是cp,原因是别名中含了-i参数,遇到
相同文件总是会提示,如果使用/bin/cp就不会了提示了。然后可使用-u参数,遇到
相同的时,源文件比目标文件新才会更新,你为了相同文件不提示直接跳过,只要保
证目标目录所有文件最新就可以了。例如
现在时间是2013-03-25 14:04
目标目录所有文件时间更新:
find dstdir -exec touch -t 201303251404 {} \;
/bin/cp -avpu srcdir/* dstdir
当然,如果已经把文件拷贝到相同服务器了,还可以使用shell脚本,更可靠,不过脚本相对复杂些了。


龙江县13538459701: linux scp命令 相同文件 -
褚云艾朗: 我看了下scp的man手册页,发现没有参数支持跳过相同文件,sorry 你用scp应该是在不同机子上复制,不过你可以通过scp先拷贝到目标主机另外 一个目录,然后通过/bin/cp命令拷贝到到最终的目标目录,因为cp在系统中 使用了别...

龙江县13538459701: linux cp命令,怎么跳过相同的文件 -
褚云艾朗: 1、使用cp命令的-n参数即可跳过相同的文件 .2、cp命令使用详解: 1)、用法:cp [选项]... [-T] 源文件 目标文件 或:cp [选项]... 源文件... 目录或:cp [选项]... -t 目录 源文件... 将源文件复制至目标文件,或将多个源文件复制至目标目录.2)、...

龙江县13538459701: 两台linux 怎么互相传文件 -
褚云艾朗: 可以使用scp命令. 具体方法: scp 本地用户名@IP地址:文件名 1 远程用户名 @IP 地址 : 文件名 2 [ 本地用户名 @IP 地址:] 可以不输入 , 可能需要输入远程用户名所对应的密码 .可能有用的几个参数 : -v 和大多数 linux 命令中的 -v 意思一样 , 用来显示进度 . 可以用来查看连接 , 认证 , 或是配置错误 . -C 使能压缩选项 . -P 选择端口 . 注意 -p 已经被 rcp 使用 .

龙江县13538459701: 你好,请问Linux下scp可以传输整个文件夹的文件吗,求方法!! -
褚云艾朗: 和cp一样的吧.用 -r 选项就OK了.scp -r user@host:dir ...就把 dir 整个拷到 ... 了.

龙江县13538459701: linux命令中的cp和scp命令的区别? -
褚云艾朗: 一个是本地 , 一个是远程.1. cp 是普通的文件复制scp 是通过ssh 本机和其他电脑上的复制.2. scp是secure copy,也是一个复制命令,是与ssh有关的. scp user@ip:/dir/file file 或者:scp file user@ip:/dir/file 要输入user在远端用户的密码....

龙江县13538459701: 我远程登录LINUX服务器,然后用SCP命令2台远程服务器相互对拷文件 -
褚云艾朗: 通常不可以. 因为你这里关电脑后,远程连接就断开了, 远程终端就关闭了,这样scp命令就被迫终止了. 要实现你的目的, 可以后台执行scp命令也就是在命令最后加一个&符号

龙江县13538459701: linux服务器之间怎么相互复制文件? -
褚云艾朗: 具体方法如下: copy 本地文件1.sh到远程192.168.9.10服务器的/data/目录下 scp /etc/1.sh root@192.168.9.10:/data/

龙江县13538459701: linux命令语句找出2个文档相同的内容并输入到一个文件里怎么写
褚云艾朗: comm /path/to/file1/ /path/to/file2 > NewFile/path/to/file1 第一个文件 /path/to/file2 第二个文件 NewFile 写的文件

龙江县13538459701: linux SCP命令查看同步数据进度?
褚云艾朗: watch -n 1 du -sh /media

龙江县13538459701: linux远程文件操作有没有类似scp的文件删除命令 -
褚云艾朗: scp的作用是远程把文件从一台linux机器复制到另外一台linux机器上 但是如果你需要删除操作的话,只能从本机进行

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网