佐舍 發表於 2019-12-16 16:28:00

阿里云 Linux远程服务器之间文件拷贝(scp、zip、unzip)

<p>一、登录Linux服务器A</p>
<p>打包压缩需要拷贝的文件夹</p>
<p>Zip -r&nbsp; &nbsp; 文件名称20191216.zip&nbsp; &nbsp; 文件夹名称</p>
<p>&nbsp;</p>
<p>二、将zip包复制到远程Linux服务器B。</p>
<p>scp&nbsp;文件名称20191216.zip&nbsp; &nbsp;root@服务器B的IP:/拷贝的远程文件夹目录www</p>
<p>&nbsp;</p>
<p>三、登录Linux服务器B的www文件夹目录,解压Zip包。</p>
<p>unzip -n -d /www 文件名称20191216.zip</p>
<p>&nbsp;</p>
<p>四、ZIP命令和UNZIP命令</p>
<p><strong>一、zip 压缩</strong></p>
<p><strong>  1,应用实例</strong></p>
<p>  (1)将当前文件夹下的所有文件打包成一个×××.zip 文件</p>
<p>    zip&nbsp; ×××.zip *</p>
<p>  (2)把当前文件夹下所有 .doc 的文件打包成一个 ×××.zip 文件</p>
<p>    zip&nbsp; ×××.zip&nbsp; *.doc</p>
<p>  (3)把一个文件 ×××.txt 和一个目录 dir1 压缩成为 @.zip</p>
<p>    zip -r @.zip ×××.txt dir1</p>
<p>  (4)将 /111/222/333/ 这个目录下所有文件和文件夹打包为当前目录下的 @.zip</p>
<p>    <strong>zip -r @.zip&nbsp;&nbsp;/111/222/333</strong></p>
<p>    <strong>zip -qr @.zip&nbsp;&nbsp;/111/222/333</strong></p>
<p>    备注:-q 为安静模式,在压缩的时候不显示指令的执行过程</p>
<p>  (5)添加一个文件到@ .zip 中</p>
<p>    zip -g @.zip ***.doc</p>
<p>    备注:如果当初并没有把 ***.doc 压在 @.zip 里面,现在把它加进去。</p>
<p>    -g 选项是增加而不要重新产生的意思。</p>
<p>  (6)将更改过的***.doc文件添加到@.zip压缩包中</p>
<p>    zip -u @.zip ***.doc</p>
<p>  (7)删除除@ .zip 文件中的指定A.doc文件</p>
<p>    zip -d @.zip A.doc</p>
<p>    备注:如果当初 A.doc是压缩在 @.zip 中的一个文件,现在这条命令把它从压缩文件中抽走并删掉。-d 是删除的意思。</p>
<p>&nbsp;</p>
<p><strong>  2,主要参数</strong></p>
<ul>
<li>
<ul>
<li>-f 更新现有的文件</li>
<li>-u 与 -f 参数类似,但是除了更新现有的文件外,也会将压缩文件中的其他文件解压缩到目录中</li>
<li>-d 指定文件解压缩后所要存储的目录</li>
<li>-m 将文件压缩并加入压缩文件后,删除原始文件,即把文件移到压缩文件中</li>
<li>-r 将指定的目录下的所有子目录以及文件一起处理</li>
<li>-j 不处理压缩文件中原有的目录路径</li>
<li>-0 只存储,不压缩</li>
<li>-l 显示压缩文件内所包含的文件</li>
<li>-1 较快速度的压缩</li>
<li>-9 较高质量的压缩</li>
<li>-q 安静模式,在压缩的时候不显示指令的执行过程</li>
<li>-v 执行时显示详细的信息</li>
<li>-c 将解压缩的结果显示到屏幕上,并对字符做适当的转换</li>
<li>-z 仅显示压缩文件的备注文字</li>
<li>-@ 从标准输入中读取名称,一个路径名称用一行</li>
<li>-o 将压缩文件内的所有文件的最新变动时间设为压缩时候的时间</li>
<li>-x 指定不要处理.zip压缩文件中的哪些文件</li>
<li>-i 只压缩符合条件的文件</li>
<li>-F 尝试修复损坏的压缩文件</li>
<li>-D 压缩文件内不建立目录名称  </li>
<li>-A 调整可执行的自动解压缩文件</li>
<li>-J 删除可执行文件,留下一个普通的 zip 归档文件</li>
<li>-T 检查备份文件内的每个文件是否正确无误</li>
<li>-X 解压缩时同时回存文件原来的 UID/GID</li>
<li>-y 直接保存符号连接,而非该连接所指向的文件,本参数仅在 UNIX 之类的系统下有效</li>
<li>-e 加密</li>
<li>-n 不压缩具有特定字尾字符串的文件</li>
<li>-h2 显示更多帮助</li>
</ul>
</li>
</ul>
<hr>
<p>&nbsp;</p>
<p><strong>二、unzip 解压缩</strong></p>
<p><strong>  1,应用实例</strong></p>
<p>  (1)把文件解压到当前目录下</p>
<p>    unzip test.zip</p>
<p>  (2)如果要把文件解压到指定的目录下,需要用到-d参数。</p>
<p>    <strong>unzip mydata.zip -d mydatabak</strong></p>
<p>  (3)解压的时候,有时候不想覆盖已经存在的文件,那么可以加上 -n 参数</p>
<p>    unzip -n test.zip<br>    unzip -n -d /temp test.zip</p>
<p>  (4)将压缩文件 test.zip 在指定目录 tmp 下解压缩,如果已有相同的文件存在,要求 unzip 命令覆盖原先的文件</p>
<p>    <strong>unzip -o test.zip -d /tmp/</strong></p>
<p>  (5)只看一下 zip 压缩包中包含哪些文件,不进行解压缩</p>
<p>    unzip -l test.zip</p>
<p>  (6)查看A.zip压缩包里的文件,还包含压缩比率<br>    <strong>unzip -v A.zip  【这个命令包含了(5)里面的内容,更详细】</strong></p>
<p>  (7)检查A.zip里的文件是否损坏<br>    <strong>unzip -t A.zip</strong></p>
<p>  (8) 把/home目录下面wwwroot.zip里面的所有文件解压到第一级目录<strong><br>  </strong>  unzip -j wwwroot.zip</p>
<p>  (9)把/home目录下面的abc12.zip、abc23.zip、abc34.zip同时解压到/home目录里面</p>
<p>    unzip abc*.zip<br><br><strong>  2,主要参数</strong></p>
<ul>
<ul>
<ul>
<li>-c 将解压缩的结果显示到屏幕上,并对字符做适当的转换</li>
<li>-p 与 -c 参数类似,会将解压缩的结果显示到屏幕上,但不会执行任何的转换。</li>
<li>-l 显示压缩文件内所包含的文件</li>
<li>-f 更新现有的文件</li>
<li>-t 检查压缩文件是否正确,但不解压</li>
<li>-u 与 -f 参数类似,但是除了更新现有的文件外,也会将压缩文件中的其他文件解压缩到目录中</li>
<li>-z 仅显示压缩文件的备注文字</li>
<li>-v 执行时显示详细的信息。或查看压缩文件目录,但不解压</li>
<li>-T 将压缩文件内的所有文件的最新变动时间设为解压缩时候的时间</li>
<li>-x 指定不要处理 .zip 压缩文件中的哪些文件</li>
<li>-d 指定文件解压缩后所要存储的目录</li>
<li>-n 解压缩时不要覆盖原有的文件</li>
<li>-q 安静模式,执行时不显示任何信息</li>
<li>-o 不必先询问用户,unzip 执行后覆盖原有文件</li>
<li>-a 对文本文件进行必要的字符转换</li>
<li>-j 不处理压缩文件中原有的目录路径</li>
<li>-aa 把所有的文件目录当作文本处理</li>
<li>-U use escapes for all non-ASCII Unicode</li>
<li>-UU 忽略 Unicode 编码字符</li>
<li>-C 压缩文件中的文件名称区分大小写</li>
<li>-L 将压缩文件中的全部文件名改为小写</li>
<li>-X 解压缩时同时回存文件原来的 UID/GID</li>
<li>-V 保留 VMS 的文件版本信息</li>
<li>-K 保留文件的 setuid/setgid/tacky 属性</li>
<li>-M 将输出结果送到 more 程序处理</li>
<li>-O 指定字符编码为 DOS,Windows 和 OS/2</li>
<li>-I 指定字符编码为 UNIX</li>

</ul>

</ul>
</ul>
<p>&nbsp;</p>
<p>五、SCP的命令</p>
<h4>1、从本地复制到远程</h4>
<p>命令格式:</p>
<pre class="prettyprint">scp local_file remote_username@remote_ip:remote_folder
或者
scp local_file remote_username@remote_ip:remote_file
或者
scp local_file remote_ip:remote_folder
或者
scp local_file remote_ip:remote_file
</pre>
<p>&nbsp;</p>
<ul>
<li>第1,2个指定了用户名,命令执行后需要再输入密码,第1个仅指定了远程的目录,文件名字不变,第2个指定了文件名;</li>
<li>第3,4个没有指定用户名,命令执行后需要输入用户名和密码,第3个仅指定了远程的目录,文件名字不变,第4个指定了文件名;</li>
</ul>
<p>应用实例:</p>
<pre class="prettyprint">scp /home/space/music/1.mp3 root@www.runoob.com:/home/root/others/music
scp /home/space/music/1.mp3 root@www.runoob.com:/home/root/others/music/001.mp3
scp /home/space/music/1.mp3 www.runoob.com:/home/root/others/music
scp /home/space/music/1.mp3 www.runoob.com:/home/root/others/music/001.mp3
</pre>
<p>复制目录命令格式:</p>
<pre class="prettyprint">scp -r local_folder remote_username@remote_ip:remote_folder
或者
scp -r local_folder remote_ip:remote_folder
</pre>
<ul>
<li>第1个指定了用户名,命令执行后需要再输入密码;</li>
<li>第2个没有指定用户名,命令执行后需要输入用户名和密码;</li>
</ul>
<p>应用实例:</p>
<pre class="prettyprint">scp -r /home/space/music/ root@www.runoob.com:/home/root/others/
scp -r /home/space/music/ www.runoob.com:/home/root/others/
</pre>
<p>上面命令将本地 music 目录复制到远程 others 目录下。</p>
<h4>2、从远程复制到本地</h4>
<p>从远程复制到本地,只要将从本地复制到远程的命令的后2个参数调换顺序即可,如下实例</p>
<p>应用实例:</p>
<pre class="prettyprint">scp root@www.runoob.com:/home/root/others/music /home/space/music/1.mp3
scp -r www.runoob.com:/home/root/others/ /home/space/music/
</pre>
<h3>说明</h3>
<p>1.如果远程服务器防火墙有为scp命令设置了指定的端口,我们需要使用 -P 参数来设置命令的端口号,命令格式如下:</p>
<pre class="prettyprint">#scp 命令使用端口号 4588
scp -P 4588 remote@www.runoob.com:/usr/local/sin.sh /home/administrator
</pre>
<p>2.使用scp命令要确保使用的用户具有可读取远程服务器相应文件的权限,否则scp命令是无法起作用的。</p><br><br>
来源:https://www.cnblogs.com/myzan/p/12049765.html
頁: [1]
查看完整版本: 阿里云 Linux远程服务器之间文件拷贝(scp、zip、unzip)