shell命令整理(七)

打包压缩

window打包压缩工具:

后缀:.rar     .zip

打包工具:winrar zip 7zip 好压

linux打包压缩工具:

后缀:.tar.gz      .tar.bz2     .zip

工具:gzip  bzip2(只压缩) 和 tar(打包)

打包

#tar cvf file.tar 被打包的文件 ...
c :create  创建
v :verbose 详细信息
f :file  文件

解包

#tar xvf 打包文件 [-C /root/Desktop]
x: extract  加压缩  解包
-C: 指定解包路径

案例

[root@linux-server ~]# tar cvf dir1.tar /home/dir10/ 
#打包目录dir10,将包命名为dir1.tar
[root@linux-server ~]# tar xf dir1.tar -C /usr/local/ 
#将dir1包解压到指定目录

压缩

gzip bzip2
压缩:
    #gzip  源文件 ...   #格式  file.gz后缀
    #bzip2 源文件 ...   #格式  file.bz2后缀

解压缩

#gunzip    压缩文件
#bunzip2   压缩文件
#gzip   -d 压缩文件  
#bzip2  -d 压缩文件
-d:dicompress 解压缩

案例

[root@linux-server ~]# gzip file1  #压缩
[root@linux-server ~]# gzip -d file1.gz #解压缩
[root@linux-server ~]# gunzip file1.gz  #也是解压缩包
[root@linux-server ~]# gzip -c file1 > /usr/local/file1.gz  
#压缩到指定位置(注意以.gz结尾)
[root@linux-server ~]# gunzip -c /usr/local/file1.gz > /opt/file1 
#解压到指定位置(解压出的名字可以自定义)

打包压缩一起:

[root@linux-server ~]# yum -y install bzip2  #打包bzip2需要安装
#tar cvzf file.tar.gz  源文件 ...
#tar cvjf file.tar.bz2 源文件 ...
z:表示gz压缩
j:表示bz2压缩

解压解包一起:

#tar xvzf 压缩文件 [-C 解压路径]
#tar xvjf 压缩文件 [-C 解压路径]

案例

[root@linux-server ~]# tar czf dir1.tar.gz dir1   #打包并压缩
[root@linux-server ~]# tar xzf dir1.tar.gz -C /usr/local/ #解压到指定位置

打包到指定路径

[root@linux-server ~]# tar czf /tmp/`date +%F-%T`etc.tar.gz /etc/  
#将打包的文件放到/tmp目录下,并以当前时间开头命名

打包并远程发送到某主机

[root@linux-server ~]# tar -czvf dir2.tar.gz dir1  |xargs -I {} scp {}  192.168.37.138:/root/

链接文件

软链接 或 符号链接 硬链接

符号链接 symbolic link

[root@linux-server ~]# echo 111 > /file1
[root@linux-server ~]# ln -s /file1 /file11     //将文件file11软链接到file1
[root@linux-server ~]# ll /file11 
lrwxrwxrwx 1 root root 6 Dec 20 17:58 /file11 -> /file1

[root@linux-server ~]# cat /file1 
111
[root@linux-server ~]# cat /file11 
111

[root@linux-server ~]# rm -rf /file1 
[root@linux-server ~]# ll /file11 
lrwxrwxrwx 1 root root 6 Dec 20 17:58 /home/file11 -> /file1   //已失效
删除源文件链接文件失效

硬链接

[root@linux-server ~]# echo 222 > /file2
[root@linux-server ~]# ln /file2 /file2-h1
[root@linux-server ~]# ln /file2 /etc/file-h3
[root@linux-server ~]# ll /file2 /file2-h1 /etc/file-h3
-rw-r--r--. 3 root root 4 Nov  9 15:01 /etc/file-h3
-rw-r--r--. 3 root root 4 Nov  9 15:01 /file2
-rw-r--r--. 3 root root 4 Nov  9 15:01 /file2-h1
注:硬链接 
1. 不能跨文件系统(分区)
2. 不支持目录做硬链接
 [root@linux-server ~]# ln /home/ /mnt
 ln: “/home/”: 不允许将硬链接指向目录

软链接和硬链接的区别:

- 软链接可以跨文件系统,硬链接不可以;
- 软链接可以对目录进行连接,硬链接不可以;
- 删除源文件之后,软链接失效,硬链接无影响;
- 两种链接都可以通过命令 ln 来创建;
- ln 默认创建的是硬链接;
- 使用 -s 参数可以创建软链接。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容