嵌入式学习笔记(十) --文件系统相关命令

声明一下,学习笔记来自创客学院,笔者只是稍加整理。欢迎转载~ 

如有不对的地方,还望指正!


本章节用到的命令

  • file      判定文件的类型
  • mkdir    创建目录
  • rmdir、rm    删除目录
  • ln                     链接命令
  • gzip、gunzip   压缩一个文件
  • tar                将若干文件或目录合并为一个文件,同时进行压缩

关于文件和目录相关的命令(pwd ls cd touch cp mv rm cat head tail)在之前的笔记介绍过,这里就不再介绍了。

Linux文件和目录相关命令: https://blog.csdn.net/feit2417/article/details/80753329


回归正文

一、file、mkdir、rmdir、ln命令

1.file命令

file  [ filename ]           file命令功能用于判定一个文件的类型

其中filename是文件名。命令的输出将显示该文件是二进制文件、文本文件、目录文件、设备文件,还是Linux中其他类型的文件


2.mkdir命令

mkdir  [ -p ]   directory_name               mkdir命令用于创建一个目录

其中,directory_name为要创建的目录名,并且不能是已有的目录,通常不允许嵌套创建子目录。

使用选项“-p”表示可以嵌套创建子目录,即多层目录。


3.rmdir命令

rmdir  [ -p ]   directory_name                 rmdir命令用于删除一个目录

其中,directory_name为要删除的一个或多个目录名。

使用选项“-p”表示可以递归删除子目录,即多层目录(删除的目录必须为空目录,并且必须具有对该目录有写入权限)。


关于删除命令,我更喜欢使用“rm  –r  dir1”,因为它不要求各层目录均为空。

rm  –r  dir1                              rm命令语序目录不为空

-r 表示可以递归删除



4.创建链接文件

链接实际上是给系统中已有的某个文件指定另外一个可用于访问它的名称。也就是说,通过链接文件,我们可以更快、更方便的指定某一个特定的文件。 Linux中有两种类型的链接:

软链接可以看作是Windows中的快捷方式,可以让你快速链接到目标档案或目录。

硬链接则透过文件系统的inode来产生新档名,而不是产生新档案。


两者的本质区别是:

a.  硬链接是利用Linux中为每个文件分配的物理编号——inode建立链接。

b.  软链接(符号链接)是利用文件的路径名建立链接。

PS:需要注意的是,如果是修改硬链接的目标文件名,链接依然有效;如果修改软链接的目标文件名,则链接将断开;对一个已存在的链接文件执行移动或删除操作,有可能导致链接的断开。假如删除目标文件后,重新创建一个同名文件,软链接将恢复,硬链接不再有效,因为文件的inode已经改变。


5.1创建链接 :ln命令

ln  [ -s ]   target  link_name

其中,选项“-s”表示为创建软链接。在缺省情况下,创建硬链接。参数target为目标文件,link_name为链接文件名。

如果链接文件名已经存在但不是目录,将不做链接。目标文件可以是任何一个文件名,也可以是一个目录。


操作演示:

linux@ubuntu:~$ ln  -s  /proc/cpuinfo   mycpuinfo
linux@ubuntu:~$ ls  –l  mycpuinfo 

lrwxrwxrwx  1  wdl  wdl  13  2007-09-22 00:43  mycpuinfo -> /proc/cpuinfo



二、文件的归档与压缩

用户在进行数据备份时,需要把若干文件整合为一个文件以便保存。尽管整合为一个文件进行管理,但文件大小仍然没变

若需要网络传输文件时,就希望将其压缩成较小的文件,以节省在网络传输的时间。

为了完成上述功能,归档与压缩的概念便提出了

  • 归档文件是将一组文件或目录保存在一个文件中。
  • 压缩文件也是将一组文件或目录保存一个文件中,并按照某种存储格式保存在磁盘上,所占磁盘空间比其中所有文件总和要少


常见压缩工具有:gzip 、bzip2、zip

常用归档工具使用最广泛的tar命令。可以把很多文件(甚至磁带)合并到一个称为tarfile的文件中,通常文件扩展名为.tar


1.gzip与gunzip命令

gzip  [ -l| -d | -num ]  filename      gzip命令

其中,filename表示要压缩的文件名,gzip会自动在这个文件名后添加扩展名为.gz,作为压缩文件的文件名。

 选项 描述
-l 查看压缩文件内的信息,包括文件数、大小、压缩比等参数,并不进行文件解压
 -d 将文件解压,功能与gunzip相同
 -num 指定压缩比率,num为1~9个等级


gunzip  [ -f ]  file.gz             gunzip命令


2.tar命令

tar  [ -t | -x | -u | -c | -v | -f | -j | -z ]  tarfile  filelist

 tar命令主要用于将若干文件或目录合并为一个文件,之后出现tar程序的改进版本,可以实现在合并归档的同时进行压缩。

-x 释放归档文件
-u 更新归档文件
-c 创建一个新的归档文件
-v 显示归档和释放的过程信息
-f 用户指定归档文件的文件名,否则使用默认名称
-j 由tar生成归档,然后由bzip2压缩

-z 由tar生成归档,然后由gzip压缩


操作演示

linux@ubuntu:~$ tar –cf myExamples.tar myExamples     将myExamples/目录下的所有文件全部归档,打包到一个文件中myExamples.tar;
linux@ubuntu:~$ tar -cjf myExamples.tar.bz myExamples  将myExamples/目录下的所有文件全部归档,并使用bzip2压缩成一个文件myExamples.tar.bz;
linux@ubuntu:~$ tar -czf myExamples.tar.gz myExamples  将myExamples/目录下的所有文件全部归档,并使用gzip压缩成一个文件myExamples.tar.gz。


2.1如果想查看一下归档文件中的详细内容,使用类似以下命令:

linux@ubuntu~$ tar  –tvf   myExamples.tar.gz

2.2使用以下命令完成tar文件的释放。其中,“tar -xjf”和“tar –xzf”等效与先解压缩后释放tar文件。

linux@ubuntu:~$ tar  –xvf   myExamples.tar
linux@ubuntu:~$ tar  -xvjf   myExamples.tar.bz
linux@ubuntu:~$ tar  -xvzf  myExamples.tar.gz


问:gzip与bzip2和zip三种压缩工具有什么区别呢?

答:gzip是Linux的系统中使用。bzip2在性能上优于gzip,提供了最大限度的压缩比率。如果用户需中最流行的压缩工具,具有很好的移植性,可在很多不同架构要经常在Linux和微软Windows间交换文件,建议使用zip。

猜你喜欢

转载自blog.csdn.net/feit2417/article/details/80792280