tar命令

命令功能 用来压缩和解压文件 
命令格式 tar[必要参数][选择参数][文件]

tar打包工具

    -f      ##指定生成包的名字,建议 -f单独写成一个参数
--delete filename ##删除包中指定文件
--get filename ##取出包中指定文件 注: -c -t -x 不能出现在同一串命令行中
tar -cf etc.tar /etc   ##生成归档包
tar -f etc.tar --get file
tar -f etc.tar --delete file
tar -rf etc.tar file ##添加文件到打包文件中
 

必要参数有如下: 
-A 新增压缩文件到已存在的压缩 
-B 设置区块大小 
-c 建立新的压缩文件 
-d 记录文件的差别 
-r 添加文件到已经压缩的文件 
-u 添加改变了和现有的文件到已经存在的压缩文件 
-p 保留原本文件属性 
-x 从压缩的文件中提取文件 
-t 显示压缩文件的内容 
-z 支持gzip解压文件 
-j 支持bzip2解压文件 
-Z 支持compress解压文件 
-v 显示操作过程 
-l 文件系统边界设置 
-k 保留原有文件不覆盖 
-m 保留文件不被覆盖 
-W 确认压缩文件的正确性 
可选参数如下: 
-b 设置区块数目 
-C 切换到指定目录 
-f 指定压缩文件 
–help 显示帮助信息 
–version 显示版本信息 
常用选项 
-cvf 把文件全部打包成.tar包 
实例 把log.log打包成log.tar 
命令 tar -cvf log.tar log.log 
-zcvf 把文件全部打包并压缩成.tar.gz包(以gzip压缩) 
实例 把log.log打包成log.tar.gz 
命令 tar -zcvf log.tar log.log 
-jcvf 把文件全部打包并压缩成.tar.bz2包(以bzip2压缩) 
实例 把log.log打包成log.tar.bz2 
命令 tar -jcvf log.tar.bz2 log.log 
-ztvf 查阅.tar.gz包里面有哪些文件 
实例 查阅log.tar.gz中有哪些文件 
命令 tar -ztvf log.tar.gz 
-zxvf 将.tar.gz解压缩 
实例 解压缩log.tar.gz至当前目录(可通过cd命令更改解压缩位置) 
命令 tar -zxvf opt/soft/test/log.tar.gz 
实例 有选择性解压文件log.tar.gz中的test1.log 
命令 tar zxvf opt/soft/test/log.tar.gz test1.log 
-p 保留原本文件的属性(包括最后修改时间,权限等信息) 
实例 打包当前目录(/tmp/test2)下的log1.log log2.log log3.log 为 log.tar.gz,并将其解压到/tmp/test1文件夹下 
命令1 tar zcvpf log.tar.gz log1.log log2.log log3.log 
命令2 cd /tmp/test1 
命令3 tar zxvpf /tmp/test2/log.tar.gz 
命令4 ll(查看解压后文件信息,发现和解压前文件属性相同) 
-N 指定日期,比某个日期新才备份 
实例 将test压缩为log.tar.gz,日期旧于2016/12/7日的不备份 
命令 tar -N “2016/12/7” -zcvf log.tar.gz test 
–exclude 排除部分文件 
实例 将scf下面所有文件备份,除了scf/service下的文件 
命令 tar –exclude scf/service /zcvf scf.tar.gz scf/*

gzip命令

命令功能 使用广泛的压缩程序,压缩后的文件后缀为.gz 
命令格式 gzip[参数][文件或者目录] 
常用选项

-a或–ascii  使用ASCII文字模式。

-c或–stdout或–to-stdout  把压缩后的文件输出到标准输出设备,不去更动原始文件。

-d或–decompress或—-uncompress  解开压缩文件。 
实例 将当前目录下所有文件都解压 
命令 gzip -dv *

-f或–force  强行压缩文件。不理会文件名称或硬连接是否存在以及该文件是否为符号连接。

-l或–list  列出压缩文件的相关信息。 
实例 得到将当前目录下所有压缩文件的信息 
命令 gzip -l *

-n或–no-name  压缩文件时,不保存原来的文件名称及时间戳记。

-N或–name  压缩文件时,保存原来的文件名称及时间戳记。

-q或–quiet  不显示警告信息。

-r或–recursive  递归处理,将指定目录下的所有文件及子目录一并处理。 
实例 压缩一个tar备份文件 
命令 gzip -r log.tar 
实例 递归的压缩目录 
命令 gzip -rv test6 
实例 递归的解压目录 
命令 gzip -dv test6

-S<压缩字尾字符串>或—-suffix<压缩字尾字符串>  更改压缩字尾字符串。

-t或–test  测试压缩文件是否正确无误。

-v或–verbose  显示指令执行过程。

-V或–version  显示版本信息。

-num 用指定的数字num调整压缩的速度,-1或–fast表示最快压缩方法(低压缩比),-9或–best表示最慢压缩方法(高压缩比)。系统缺省值为6

gzip xxxx.tar =====> xxxx.tar.gz    ##压缩
gunzip xxxx.tar.gz =====> xxxx.tar ##解压
tar zcvf xxxx.tar.gz 目标文件 ##打包压缩文件
tar zxvf xxxx.tar.gz ###xxxx.tar.gz===>xxxx

bz2(压缩比例最高)

bzip2 xxxx.tar =====> xxxx.tar.bz2  ##压缩
bunzip2 xxxx.tar.bz2 =====> xxxx.tar ##解压
tar jcvf xxxx.tar.bz2 目标文件 ##打包压缩文件
tar jxvf xxxx.tar.bz2 ###xxxx.tar.bz2===>xxxx

xz(//慢)

xz xxxx.tar =====> xxxx.tar.xz      ##压缩
unxz xxxx.tar.xz =====> xxxx.tar ##解压
tar Jcvf xxxx.tar.xz 目标文件 ##打包压缩文件
tar Jxvf xxxx.tar.xz ###xxxx.tar.xz===>xxxx

前三种可以直接一步进行归档压缩

zip(//与win兼容,必须将文件夹归档才可以进行压缩)
zip -r xxx.tar.zip xxx.tar ###压缩
unzip xxx.tar.zip ###解压

远程文件复制共享

scp远程复制

scp     file    user@ip:/directory      ##上传文件
scp -r dir user@ip:/directory ##长传目录
scp user@ip:/filename /direcotry ##下载文件
scp -r user@ip:/directory /direcotry ##下载目录

rsync远程同步(同步体现在权限信息等的同步)

(若目录后面添加/ 表示只拷贝文件夹里面的内容不包括文件夹)

rsync file|direcotry user@ip:/directory (远程发送)
rsync user@ip:/directory /directory (远程复制) 参数选项:
-r ##同步目录 (不加这个参数会直接跳过目录,只会拷贝普通文件)
-l ##不忽略链接(默认忽略链接)
-p ##不忽略权限
-t ##不忽略时间戳
-g ##不忽略组信息
-o ##不忽略用户信息
-D ##不忽略设备文件(权限 c b 开头的文件)

范例一:将整个/etc目录下的文件全部打包成为/tmp/etc.tar

[root@linux ~]# tar -cvf /tmp/etc.tar /etc <==仅打包,不压缩!

[root@linux ~]# tar -zcvf /tmp/etc.tar.gz /etc <==打包后,以gzip压缩

[root@linux ~]# tar -jcvf /tmp/etc.tar.bz2 /etc <==打包后,以bzip2压缩

#特别注意,在参数f之后的文件档名是自己取的,我们习惯上都用.tar来作为辨识。

#如果加z参数,则以.tar.gz或.tgz来代表gzip压缩过的tar file~

#如果加j参数,则以.tar.bz2来作为附档名啊~

#上述指令在执行的时候,会显示一个警告讯息:

#『tar: Removing leading `/' from member names』那是关於绝对路径的特殊设定。

范例二:查阅上述/tmp/etc.tar.gz文件内有哪些文件?

[root@linux ~]# tar -ztvf /tmp/etc.tar.gz

#由於我们使用gzip压缩,所以要查阅该tar file内的文件时,

#就得要加上z这个参数了!这很重要的!

范例三:将/tmp/etc.tar.gz文件解压缩在/usr/local/src底下

[root@linux ~]# cd /usr/local/src

[root@linux src]# tar -zxvf /tmp/etc.tar.gz

#在预设的情况下,我们可以将压缩档在任何地方解开的!以这个范例来说,

#我先将工作目录变换到/usr/local/src底下,并且解开/tmp/etc.tar.gz,

#则解开的目录会在/usr/local/src/etc呢!另外,如果您进入/usr/local/src/etc

#则会发现,该目录下的文件属性与/etc/可能会有所不同喔!

范例四:在/tmp底下,我只想要将/tmp/etc.tar.gz内的etc/passwd解开而已

[root@linux ~]# cd /tmp

[root@linux tmp]# tar -zxvf /tmp/etc.tar.gz etc/passwd

#我可以透过tar -ztvf来查阅tarfile内的文件名称,如果单只要一个文件,

#就可以透过这个方式来下达!注意到!etc.tar.gz内的根目录/是被拿掉了!

范例五:将/etc/内的所有文件备份下来,并且保存其权限!

[root@linux ~]# tar -zxvpf /tmp/etc.tar.gz /etc

#这个-p的属性是很重要的,尤其是当您要保留原本文件的属性时!

范例六:在/home当中,比2005/06/01新的文件才备份

[root@linux ~]# tar -N '2005/06/01' -zcvf home.tar.gz /home

范例七:我要备份/home, /etc,但不要/home/dmtsai

[root@linux ~]# tar --exclude /home/dmtsai -zcvf myfile.tar.gz /home/* /etc

范例八:将/etc/打包后直接解开在/tmp底下,而不产生文件!

[root@linux ~]# cd /tmp

[root@linux tmp]# tar -cvf - /etc | tar -xvf -

#这个动作有点像是cp -r /etc /tmp啦~依旧是有其有用途的!

#要注意的地方在於输出档变成-而输入档也变成-,又有一个|存在~

#这分别代表standard output, standard input与管线命令啦!

tar -cvf log.tar log2012.log    仅打包,不压缩!

tar -zcvf log.tar.gz log2012.log   打包后,以 gzip 压缩

tar -zcvf log.tar.bz2 log2012.log  打包后,以 bzip2 压缩

在参数 f 之后的文件档名是自己取的,我们习惯上都用 .tar 来作为辨识。 如果加 z 参数,则以 .tar.gz 或 .tgz 来代表 gzip 压缩过的 tar包; 如果加 j 参数,则以 .tar.bz2 来作为tar包名。

.bz
解压1:bzip2 -d FileName.bz
解压2:bunzip2 FileName.bz
压缩:未知

.tar.bz
解压:tar jxvf FileName.tar.bz
压缩:未知

.Z
解压:uncompress FileName.Z
压缩:compress FileName

.tar.Z
解压:tar Zxvf FileName.tar.Z
压缩:tar Zcvf FileName.tar.Z DirName

.zip
解压:unzip FileName.zip
压缩:zip FileName.zip DirName

.rar
解压:rar x FileName.rar
压缩:rar a FileName.rar DirName

实例2:查阅上述 tar包内有哪些文件

命令:tar -ztvf log.tar.gz

实例5:文件备份下来,并且保存其权限

命令:tar -zcvpf log31.tar.gz log2014.log log2015.log log2016.log

实例6:在 文件夹当中,比某个日期新的文件才备份

命令:tar -N "2012/11/13" -zcvf log17.tar.gz test

实例7:备份文件夹内容是排除部分文件

命令:tar --exclude scf/service -zcvf scf.tar.gz scf/*

用SecureCRT来上传和下载文件

用SSH管理linux服务器时经常需要远程与本地之间交互文件.而直接用SecureCRT自带的上传下载功能无疑是最方便的,SecureCRT下的文件传输协议有ASCII、Xmodem、Zmodem。
文件传输协议:
文件传输是数据交换的主要形式。在进行文件传输时,为使文件能被正确识别和传送,我们需要在两台计算机之间建立统一的传输协议。这个协议包括了文件的识别、传送的起止时间、错误的判断与纠正等内容。常见的传输协议有以下几种: 
ASCII:这是最快的传输协议,但只能传送文本文件。 
Xmodem:这种古老的传输协议速度较慢,但由于使用了CRC错误侦测方法,传输的准确率可高达99.6%。 
Ymodem:这是Xmodem的改良版,使用了1024位区段传送,速度比Xmodem要快
Zmodem:Zmodem采用了串流式(streaming)传输方式,传输速度较快,而且还具有自动改变区段大小和断点续传、快速错误侦测等功能。这是目前最流行的文件传输协议。 
除以上几种外,还有Imodem、Jmodem、Bimodem、Kermit、Lynx等协议,由于没有多数厂商支持,这里就略去不讲。

SecureCRT可以使用linux下的zmodem协议来快速的传送文件,使用非常方便.具体步骤:

一.在使用SecureCRT上传下载之前需要给服务器安装lrzsz:

1、从下面的地址下载 lrzsz-0.12.20.tar.gz

http://down1.chinaunix.net/distfiles/lrzsz-0.12.20.tar.gz

2、查看里面的INSTALL文档了解安装参数说明和细节

3、解压文件

tar zxvf lrzsz-0.12.20.tar.gz

4、进入目录

cd lrzsz-0.12.20

5、./configure --prefix=/usr/local/lrzsz

6、make

7、make install

8、建立软链接

#cd /usr/bin

#ln -s /usr/local/lrzsz/bin/lrz rz

#ln -s /usr/local/lrzsz/bin/lsz sz

9、测试

运行 rz 弹出SecureCRT上传窗口,用SecureCRT来上传和下载文件。

二.设置SecureCRT上传和下载的默认目录就行

options->session options ->Terminal->Xmodem/Zmodem 下
在右栏directory设置上传和下载的目录

三.使用Zmodem从客户端上传文件到linux服务器

1.在用SecureCRT登陆linux终端.
2.选中你要放置上传文件的路径,在目录下然后输入rz命令,SecureCRT会弹出文件选择对话框,在查找范围中找到你要上传的文件,按Add按钮。然后OK就可以把文件上传到linux上了。
或者在Transfer->Zmodem Upoad list弹出文件选择对话框,选好文件后按Add按钮。然后OK窗口自动关闭。然后在linux下选中存放文件的目录,输入rz命令。liunx就把那个文件上传到这个目录下了。

四.使用Zmodem下载文件到客户端:
sz filename
zmodem接收可以自行启动.下载的文件存放在你设定的默认下载目录下.

rz,sz是Linux/Unix同Windows进行ZModem文件传输的命令行工具windows端需要支持ZModem的telnet/ssh客户端,SecureCRT就可以用SecureCRT登陆到Unix/Linux主机(telnet或ssh均可)O 运行命令rz,即是接收文件,SecureCRT就会弹出文件选择对话框,选好文件之后关闭对话框,文件就会上传到当前目录 O 运行命令sz file1 file2就是发文件到windows上(保存的目录是可以配置) 比ftp命令方便多了,而且服务器不用再开FTP服务了

linux(6/17)--文件打包上传和下载的更多相关文章

  1. Linux - 通过SecureCRT的rz、sz和sftp实现文件的上传和下载

    目录 1 通过rz/sz命令上传/下载 1.1 安装lrzsz软件 1.2 rz - 上传文件 1.3 sz - 下载文件 2 通过sftp上传/下载文件 2.1 关于SFTP的简介 2.2 SFTP ...

  2. linux上文件的上传和下载

    现整理一篇linux上文件的上传和下载 第一种方式就是在windos上安装工具 如: 工具如何使用我就不赘述了,easy 第二种方式就是使用liux的命令(首先是文件上传) 上传文件(首先创建文件夹如 ...

  3. Xshell在Windows和Linux间文件的上传和下载

    本文通过lrzsz来实现Windows和Linux间文件间的文件传输. lrzsz使用 XMODEM.YMODEM 和 ZMODEM 文件传输协议来实现文件的上传和下载.相比 FTP 或者 WinSC ...

  4. SpringMVC+Ajax实现文件批量上传和下载功能实例代码

    需求: 文件批量上传,支持断点续传. 文件批量下载,支持断点续传. 使用JS能够实现批量下载,能够提供接口从指定url中下载文件并保存在本地指定路径中. 服务器不需要打包. 支持大文件断点下载.比如下 ...

  5. JavaWeb中文件的上传和下载

    JavaWeb中文件的上传和下载 转自: JavaWeb学习总结(五十)——文件上传和下载 - 孤傲苍狼 - 博客园https://www.cnblogs.com/xdp-gacl/p/4200090 ...

  6. Java中文件的上传与下载

    文件的上传与下载主要用到两种方法: 1.方法一:commons-fileupload.jar  commons-io.jar apache的commons-fileupload实现文件上传,下载 [u ...

  7. .net web开发——文件的上传和下载

    以ASP.NET Core WebAPI 作后端 API ,用 Vue 构建前端页面,用 Axios 从前端访问后端 API ,包括文件的上传和下载. 准备文件上传的API #region 文件上传  ...

  8. 使用xshell软件进行文件的上传和下载

    1.选择xshell的文件里面的属性-->文件传输,把上传路径和下载路径设置好. 上传路径:介绍我们需要向Linux系统里面传东西. 下载路径:就是我们把Linux系统里面的大小拷贝出来. 2. ...

  9. java实现ftp文件的上传与下载

    最近在做ftp文件的上传与下载,基于此,整理了一下资料.本来想采用java自带的方法,可是看了一下jdk1.6与1.7的实现方法有点区别,于是采用了Apache下的框架实现的... 1.首先引用3个包 ...

随机推荐

  1. JSP页面之间传递参数的方法有哪些?

    JSP页面之间传递参数的方法有哪些? 解答: 1)request 2)session 3)application 4)提交表单 5)超链接

  2. ubuntu14.04安装vmware workstation

    0) Do the basic system installation of Ubuntu 14.04 LTS (Server or Desktop) 1) wget the installer wg ...

  3. Ubuntu修改默认root及密码

    Ubuntu的默认root密码是随 机的,即每次开机都有一个新的 root密码. 我们可以在终端输入命令 sudo passwd, 然后输入当前用户的密码,enter, 终端会提示我们输入新的密码并确 ...

  4. Spring MVC学习-----------springMVC-mvc.xml

    springMVC-mvc.xml 配置文件片段解说 (未使用默认配置文件名称) <?xml version="1.0" encoding="UTF-8" ...

  5. php检测非法字符方法

    检测非法字符: [第一种]: 自己搞来玩的... 简单测试了下...暂无发现什么问题...日后再多测试下....日后再更>>>

  6. MVC [Control与View交互]

    <1> Home控制器 using System; using System.Collections.Generic; using System.Data; using System.Da ...

  7. CSS-微信开放UI样式

    下面的链接是微信开放的CSS的样式: http://weui.github.io/weui/ 附上GitHub地址:https://github.com/weui/weui

  8. 初步了解 cURL

    今天需要用PHP模拟post请求,查了查资料,了解到cURL.看了一篇博客,写的很详细,就转载了,与大家分享.[原文链接] 什么是cURL?可能还有很多同学没有听说过这个工具,我先来给大家简单介绍下什 ...

  9. .Net Core 知识了解:一跨平台的奥秘

    学习一下.Net Core 查看了技术大拿的文章 .NET Core跨平台的奥秘[上篇]:历史的枷锁 一下是学习资料 对于计算机从业人员来说,“平台(Platform)”是一个我们司空见惯的词语,在不 ...

  10. nodejs 循环中操作需要同步执行解决方案

    最近用nodejs做了个针对某网站的小爬虫.干坏事得低调对吧,不能同时开太多的网络访问,结果各种回调/循环虐的心力交瘁. 经过了n次的百度\哥哥后终于拼出了自己要的功能.不敢独享分享出来以供大家参考. ...