Linux 中的文件复制cp命令和scp命令详解
<p><strong>Linux 中的文件复制cp命令和scp命令详解</strong></p>
<p>
在使用操作系统的使用过程中,常常需要复制文件到本地或者传输文件到其他电脑上,这时候用到两个命令cp和scp。</p>
<p>
cp命令用来复制文件或者目录。scp是secure copy的简写,用来在Linux下进行加密的远程传输文件或者目录。</p>
<p>
cp和scp是Linux中功能强大且常用的的命令,下面就介绍下cp和scp两个命令的使用。</p>
<p>
<strong>cp命令</strong></p>
<p>
cp命令可以复制一个文件,可以是单个文件复制也可以是整个目录复制,命令的使用方式:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_716153">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash functions">cp</code> <code class="bash plain"> </code><code class="bash functions">source</code> <code class="bash plain">dest</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
例如:<span>cp test.txt test1.txt</span>,就是把test.txt复制为文件test1.txt。</p>
<p>
常用的cp命令选项有:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_607009">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain">`-r`:拷贝目录文件,将目录下的文件依序拷贝到目标目录中</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash plain">`-f`:如果目标文件中已经有相同的文件名存在,在复制前先将同名文件删除再进行复制</code>
</div>
<div class="line number3 index2 alt2">
<code class="bash plain">`-l`:对源文件进行硬链接,而不复制文件</code>
</div>
<div class="line number4 index3 alt1">
<code class="bash plain">`-u`:源文件的Modification Time较目的文件有更新的时候,才会进行复制。</code>
</div>
<div class="line number5 index4 alt2">
<code class="bash plain">`-</code><code class="bash functions">v</code><code class="bash plain">`:输出详细信息</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
复制文件夹的命令:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_109113">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash functions">cp</code> <code class="bash plain">-r </code><code class="bash functions">test</code><code class="bash plain">/ test1/</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
<strong>scp命令</strong></p>
<p>
scp命令可以实现本地与远程服务器之间的双向传输,本地文件可以传输到远程服务,也可以把远程服务器上的文件传输到本地,而且是加密的。</p>
<p>
scp命令的基本格式:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_810534">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash functions">scp</code> <code class="bash plain"> </code><code class="bash functions">source</code> <code class="bash plain">dest</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
scp常用的命令选项:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_340076">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
<div class="line number6 index5 alt1">
6</div>
<div class="line number7 index6 alt2">
7</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain">`-P`:数据传输默认端口,默认是22</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash plain">`-r`:递归拷贝整个目录</code>
</div>
<div class="line number3 index2 alt2">
<code class="bash plain">`-i`:指定密钥文件,参数直接传递给</code><code class="bash functions">ssh</code><code class="bash plain">使用</code>
</div>
<div class="line number4 index3 alt1">
<code class="bash plain">`-l`:限定网速,以Kbit</code><code class="bash plain">/s</code><code class="bash plain">为单位</code>
</div>
<div class="line number5 index4 alt2">
<code class="bash plain">`-C`:允许压缩</code>
</div>
<div class="line number6 index5 alt1">
<code class="bash plain">`-1,-2`:强制</code><code class="bash functions">scp</code><code class="bash plain">命令使用ssh1或者ssh2协议</code>
</div>
<div class="line number7 index6 alt2">
<code class="bash plain">`-4,-6`:使用ipv4或者ipv6寻址</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
下面是比较常用的scp命令使用的例子。</p>
<p>
<strong>1.本地文件传输到远程服务器</strong></p>
<p>
命令格式:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_457915">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash functions">scp</code> <code class="bash functions">test</code><code class="bash plain">.txt root@192.168.1.1:</code><code class="bash plain">/home/</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
将test.txt文件复制到目标服务器(192.168.1.1)下的home文件夹下。</p>
<p>
<strong>2.本地文件夹传输到远程服务器</strong></p>
<p>
命令格式:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_874740">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash functions">scp</code> <code class="bash plain">-r </code><code class="bash functions">test</code> <code class="bash plain">root@192.168.1.1:</code><code class="bash plain">/home/</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
将test整个文件夹复制到目标服务器下的home文件夹下。</p>
<p>
<strong>3.远程服务器文件传输到本地</strong></p>
<p>
命令格式:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_749538">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash functions">scp</code> <code class="bash plain">root@192.168.1.1:</code><code class="bash plain">/home/test</code><code class="bash plain">.txt </code><code class="bash functions">test</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
将远程服务中home目录下的test.txt文件,复制到本地的test目录下</p>
<p>
<strong>4.远程服务器文件夹复制到本地</strong></p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_745794">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash functions">scp</code> <code class="bash plain">-r root@192.168.1.1:</code><code class="bash plain">/home/test</code> <code class="bash plain">/Users/jjz</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
将远程服务器中home目录下的test整个目录复制到本地的jjz目录下</p>
<p>
<strong>5.scp命令指定密钥文件</strong></p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_702228">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash functions">scp</code> <code class="bash functions">test</code><code class="bash plain">.txt root@192.168.1.1:</code><code class="bash plain">/home/</code> <code class="bash plain">-i ~/.</code><code class="bash functions">ssh</code><code class="bash plain">/id_rsa</code><code class="bash plain">.1</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
这里指定了密钥文件id_rsa.1做为ssh的连接参数,不使用默认的密钥文件。</p>
<p>
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!</p>
<p>
原文链接:http://www.jianshu.com/p/d21a5d4818a5</p>
頁:
[1]