Linux系统的常见命令十,打包以及解包、链接(tar、ln)

目录

本文主要介绍Linux系统的打包以及解包、链接命令tar、ln。

gzip 和bzip2只能压缩文件,但是不能压缩目录。而zip可以压缩文件也可以压缩目录但是解压过后内容全部都丢失了。打包就是把一些零零散散的东西全部都堆到一起。

tar命令

tar(tape archive)命令可以用于创建归档文件、将多个文件打包成一个归档文件、以及从归档文件中提取文件。在Linux系统中,tar命令是一个非常常用的命令。

tar命令的语法如下:

bash 复制代码
tar [options] [filename]

其中,options表示命令的选项,常用的选项包括:

  • c:创建一个新的归档文件;
  • x:从归档文件中提取文件;
  • v:显示tar命令的详细操作过程;
  • f:用于指定归档文件的名称;
  • z:用gzip压缩或解压缩文件;
  • j:用bzip2压缩或解压缩文件。

filename表示要操作的文件名或目录名。

举个例子:

  • 创建归档文件
bash 复制代码
tar cvf archive.tar file1 file2 file3

该命令将会把文件file1、file2和file3打包成一个归档文件archive.tar。

  • 解压缩归档文件
bash 复制代码
tar xvf archive.tar

该命令将会把归档文件archive.tar中的所有文件解压缩到当前目录。

  • 用gzip压缩归档文件
bash 复制代码
tar czvf archive.tar.gz file1 file2 file3

该命令将会用gzip压缩文件,并把压缩后的归档文件保存为archive.tar.gz。

  • 用gzip解压缩归档文件
bash 复制代码
tar xzvf archive.tar.gz

该命令将会把gzip压缩的归档文件archive.tar.gz中的所有文件解压缩到当前目录。

tar命令非常强大,可以通过不同的选项和参数来实现不同的操作。

需要根据具体的需求来选择使用哪些选项和参数。

汇总:

打包语法 后缀名 解包语法
tar -cvf 包名.tar .tar tar -xvf 包名.tar
tar -czvf 包名.tar.gz 或者 tar -zcvf 包名.tar.gz .tar.gz tar -xzvf 包名.tar.gz 或者 tar -zxvf 包名.tar.gz
tar -cjvf 包名.tar.bz2 或者 tar -jcvf 包名.tar.bz2 .tar.bz2 tar -xjvf 包名.tar.gz 或者 tar -jxvf 包名.tar.gz

以上语法中的v都可以忽略不写

ln命令

ln命令是Linux系统中常用的命令之一,用于创建一个新的链接文件,也就是所谓的软链接或硬链接(也称为快捷方式),与Windows中的快捷方式类似。ln命令还可以用于删除链接文件。

ln命令的语法格式如下:

bash 复制代码
ln [OPTIONS] SOURCE [LINK_NAME]

其中,OPTIONS表示选项,常用的选项有:

  • -s:创建软链接,也称为符号链接或软连接。
  • -f:删除目标文件(如果存在)而不提示用户。
  • -i:交互式操作模式,在创建链接文件之前询问用户是否需要替换已存在的文件。
  • -n:强制重建链接,即使目标文件已经存在。

SOURCE表示要创建链接的源文件,LINK_NAME表示创建的链接文件名(可以不指定,使用默认名称)。

举个例子:

  • 创建软链接
bash 复制代码
ln -s /path/to/source /path/to/link

该命令将在/path/to/目录下创建一个名为link的软链接,指向源文件/path/to/source。

  • 创建硬链接
bash 复制代码
ln /path/to/source /path/to/link

该命令将在/path/to/目录下创建一个名为link的硬链接,指向源文件/path/to/source。硬链接与源文件的inode号相同,删除其中一个文件不会影响另一个文件。

  • 删除链接文件
bash 复制代码
rm /path/to/link

该命令将会删除/link链接文件。

需要注意的是,软链接与硬链接有一些区别,其中:

  • 软链接是一个指向源文件的文件名,删除源文件并不会影响软链接,但是软链接本身如果被删除了,源文件仍然存在;
  • 硬链接是源文件的一个别名,删除源文件或硬链接文件都会相互影响,即如果删除源文件,该文件所对应的所有硬链接都会失效。

因此,在使用ln命令进行链接操作时,需要根据具体情况和需求选择使用软链接还是硬链接。

选择软链接的情况:

  1. 软链接可以跨文件系统和硬盘分区,而硬链接只能在同一个文件系统内使用。

  2. 软链接可创建的目标可以是一个目录,而硬链接只能链接到一个文件上。

  3. 软链接可以创建一个指向一个不存在的文件或目录的链接,硬链接不行。

  4. 软链接与源文件的 inode 号不相同,删除软链接不会删除源文件。

  5. 软链接可以创建循环链接,硬链接不行。

选择硬链接的情况:

  1. 硬链接是指向同一个 inode 号的文件,因此文件系统会将它们视为同一个文件,修改其中一个文件,另一个文件也会发生变化。

  2. 硬链接可以避免在不同目录下保存同一份文件,使得空间能够更有效地利用。

基于上述差异,我们可以根据需要选择硬链接或软链接。例如,若想在一个文件夹下创建一个文件的副本,但又不想占用太多空间,就可以使用硬链接。而如果需要创建一个指向另一个文件或目录的快捷方式,就可以使用软链接。

无论是软链接还是硬链接,都提供了一种通用的方法来为文件或目录创建别名,能够更加灵活地操作文件或目录。

相关推荐
遇见火星8 分钟前
常见Systemctl语句
linux·服务器·网络·systemctl
月明长歌22 分钟前
【码道初阶】【LeetCode 110】平衡二叉树:如何用一个“Magic Number”将复杂度从O(N²)降为 O(N)?
linux·算法·leetcode
专家大圣23 分钟前
摆脱局域网束缚!Neko+cpolar 让跨网共享成日常
服务器·网络·docker·内网穿透·cpolar
二哈喇子!27 分钟前
openFuyao 容器平台快速入门:Nginx 应用部署全流程实操
运维·nginx·openfuyao
齐鲁大虾33 分钟前
国产 Linux 系统核心优缺点与适用场景
linux·运维·服务器
雨大王5121 小时前
工业生产执行系统(MES)在汽车制造行业的应用案例
运维·人工智能
小鹿学程序1 小时前
FileZilla连接到虚拟机
java·服务器·开发语言
skywalk81631 小时前
webvm 用浏览器启动的虚拟环境
linux·wasm
Awkwardx1 小时前
Linux网络编程—数据链路层
linux·运维·网络
树下水月1 小时前
docker 启动后 如何通过对应的进程 找docker-compose.yaml 编排文件
运维·docker·容器