Linux基础命令(七)

#################################
####12.不同系统之间的文件传输####
#################################

####1.文件归档(打包)####
1.
文件归档,就是把多个文件变成一个归档文件


2.

tar    -c        ##创建(create--->新建打包文件--->默认是)
         -f                        ##"被处理"的文件--->建议-f单独写一个参数,紧跟打的包)
        -t(list-context    ##显示包中的内容(主要查看存在的文件名,对于子目录中的文件呢?)
    -r(append)    ##向归档文件中添加文件
    --get        ##"取出单个文件(还挺有用的,当需要改模板时-->比如jar时,修改里面的配置文件,再放回)
    --delete    ##删除单个文件
    -x(extract)    ##解打包或者解压缩(可以指定-C在特定的目录解开!)的功能
    -C        ##指定解压目录--->比较有用!(比如说:把开发软件都统一放在一个目录下解压进行管理!)
    -z(调用gzip)    ##gzip格式压缩-->建议文件名最好为*.tar.gz--->表示使用tar进行打包进而用gzip压缩
    -j(调用bzip2)    ##bzip2格式压缩->建议文件名最好为*.tar.bz2--->同上!
    -J        ##xz格式压缩(了解)
        -v              ##在压缩/解压的过程中将正在被处理的文件名显示出来!
    -r(追加)         ##向打包文件中追加文件

思考:用WininRar打开压缩的文件,然后修改,保存!

后续:涉及文件权限的问题!

注意1:多个参数是只需要一个"-"即可!

注意2:当使用-f指定文件的打包名时最好单独与其它参数分离(不写到一块)

注意3:{-c,-v,-t}不能同时出现在一串命令中!

-zxvf------>"至小威风"

--------------------------------------

案例1

(1)单纯的打包--->理解为将数据进行封装!

tar cf etc.tar westos(被处理的--->如果是当前的目录写".")

明显:tar t 【-f etc.tar】 westos---->建议这样写!

注意:打包后是一个文件而不是一个目录!

细节:tar并不会主动产生"创建"的用户名,-->(可以是打包的文件名可以是压缩后的文件名也可以是解压后的文件名!)

说明1:如果写打包的文件或目录,必须在路径下是已存在的,否则找不到源头,就没办法打包(指定打包后的包名)!

(2)tar -tf 打包的包名

说明:查询已打包的内容!

说明:打包后是一个文件,且打包后文件的大小可能会增长(增加了一些信息)!

可以对[f filename]处理的操作前置-->(r-->增加内容,t-->查询内容,x-->解包和压缩文件);后置-->{--delete删除}

强调一点:tar本身只是一个打包工具,把多个文件或目录打包成一个文件,方便保存和传输。打包后的文件有一些额外信息,导致文件变大,但是tar也提供了一些参数,在打包的过程中可以进行压缩,这样得到的文件就会比较小;相应的,解包的时候也要有对应的参数进行解压。

--------------------------------------

####2.压缩####

说明:Linux一般下载的是软件压缩文件的后缀名是".tar.gz"

gz
gzip    etc.tar             ##压缩成gz格式(简单)
gunzip  etc.tar.gz         ##解压gz格式压缩包

********************************
tar     -zcf etc.tar.gz /etc ##把文件归档为tar并压缩成gz----->干了两件事事情!
tar     -zxf etc.tar.gz         ##解压并解档gz格式压缩包

----------------------

bz2
bzip2 etc.tar             ##压缩成bz2格式
bunzip2 etc.tar.bz2         ##解压bz2格式压缩包
********************************
tar jcf etc.tar.bz2 /etcd    ##把文件归档为tar并压缩成bz2--->完成两件事情(打包的过程中压缩!)!
tar jxf etc.tar.bz2         ##解压并解档bz2格式压缩包---->完成两件事情!

---------------------

xz
xz etc.tar              ##压缩成xz格式
unxz  etc.tar.xz         ##解压xz格式压缩包

特点:效率最慢(时间),但是效果最好(占用磁盘空间--换句话说压缩比例)!

********************************
tar Jcf etc.tar.xz /etc         ##把文件归档为tar并压缩成zx
tar Jxf etc.tar.xz         ##解压并解档xz格式压缩包

-------------------------------

zip

zip -r etc.tar.zip etc.tar   ##压缩成zip格式
unzip etc.tar.zip         ##解压zip格式压缩包


补充:备份

需求:常常将/etc下的配置文件(重要的系统数据)保存一份(压缩的形式)--->同时要保存原本文件的权限和属性!

-p参数------>保存原本文件的权限和属性-->注意:如果当前没有这些用户和用户组,则系统会智能的创建!

备份的过程中出现如下的警告:

警告信息:tar:Rmoving leading '/'from member names--->删除了文件的开头的"/"-->(根目录)--->


已知:在某目录下(/temp)下解压,压缩的文件中有etc/*的配置文件--->带路经的文件

思考:如果去掉了根目录则会将备份的数据在/temp下解开;如果没有去掉"/"目录,则解压后的文件名就是绝对路径,即解压

后的数据一定会放置到/etc/中,就会覆盖原来/etc/下面的配置文件!--->为了安全其见!

原因:如果需要将备份数据在当前目录下解压,则

---------------------------

####3.系统中的文件传输####

(1)scp

scp    file     username@ip:/dir    ##上传

关注点:上传什么--->上传到呢(哪个ip对应的用户保存接受文件的目录)?

scp    username@ip:/dir/file  /dir    ##下载

关注点:从哪下载(哪个ip的用户对应的目录或文件)--->下载到哪?

(2)rsync(服务的名称)

引入:scp上传文件的时候,总是有一个进度条,文件如果很大则很慢!

rsync是同步的,理解为java的多线程,多点下载,所以速度比较快,效率高!

可以将一个客户机和远程文件服务器之间的文件同步,也可以在本地系统中将数据从一个分区备份到另一个分区上。如果rsync在备份过程中出现了数据传输中断,恢复后可以继续传输不一致的部分。rsync可以执行完整备份或增量备份。它的主要特点有:

1.可以镜像保存整个目录树和文件系统;

2.可以很容易做到保持原来文件的权限、时间、软硬链接;无须特殊权限即可安装;

3.可以增量同步数据,文件传输效率高,因而同步时间短;

4.可以使用rcp、ssh等方式来传输文件,当然也可以通过直接的socket连接;

5.支持匿名传输,以方便进行网站镜象等;

6.加密传输数据,保证了数据的安全性;

用到的特点:同步上传文件的时候,内核会自动的帮你减掉一些权限(如何减掉呢?)

------------------

参数信息!--->语法和scp很相似!

rsync [参数]    file    username@ip:/dir

   rsync    -r    ##同步目录(???)
        -l    ##不忽略链接
        -p    ##不忽略同步文件权限(就不会去默认的减掉权限了!)
        -t    ##不忽文件时间戳()
        -g    ##不忽文件所有组(不存在则创建)
        -o    ##不忽文件所有人(不存在则创建)
        -D    ##不忽略设备文件

强调:如果两个主机都有用户的时候,一定要加"-r"参数来同步文件!

相应的配置文件:/etc/xinetd.d/rsync

相关链接:https://www.cnblogs.com/piaozhe116/p/5728749.html

************************

无意中发现的:

Linux下的回收站位于~/.local/share/Trash/files,模拟实现删除文件到回收站,其实就是文件移动命令!

思考:什么情况下文件会进入回收站

需求:启动一个定时期,定时清楚回收站的内容!

参考链接:https://www.cnblogs.com/tocy/p/linux-rm-to-recycle_bin.html

猜你喜欢

转载自blog.csdn.net/wzj_110/article/details/81323749