Linux操作系统实验四 文件管理(二)(中)

简介: Linux操作系统实验四 文件管理(二)(中)

任务描述

有时,我们会在Linux系统中将多个文件打包成一个单独的文件,通过本关的学习,我们将学会如何在Linux系统中将多个文件/目录打包生成一个文件。

本关任务:使用tar命令完成文件和目录的打包操作。

相关知识

tartape archive的简写)工具可完成许多功能,其名称源于它的原始功能-创建和读取归档文件和备份磁带。如今,该工具常用来将多个文件或多个目录打包成一个tar文件,或者将某个tar文件分解开。

接下让我们详细的学习tar的使用方法。

打包

tar命令可以将多个文件/目录进行打包,将多个文件生成一个文件,生成的文件后缀为.tar

具体打包命令如下:

tar -cvf 生成的tar包名 要打包的文件/目录列表

常用命令参数如下:

  1. -c 建立新的归档文件;
  2. -v 处理过程中输出相关信息;
  3. -f 对普通文件操作;

解包

tar命令可以将已经打包好的文件解压出来。

具体打包命令如下:

tar -xvf 解压包名 -C 解压到指定目录

常用命令参数如下:

  1. -x 或--ext\fract或--get:从备份文件中还原文件;
  2. -v 处理过程中输出相关信息;
  3. -f  对普通文件操作;
  4. -C <目的目录> 切换到指定的目录;

如果不使用-C(大写)参数,则默认解压到当前目录下。

编程要求

在右侧编辑器中补充代码,使用tar命令打包和解包,具体编程要求如下:

  • 使用tar命令将当前目录下的oldFile1oldFile2文件打包成一个newFile.tar文件;
  • 使用tar命令将当前目录下的oldFile.tar文件解压到当前目录下。

任务描述

由于磁盘空间有限,我们通常会将不常用的大文件进行压缩以便于节约磁盘空间,通过本关的学习,我们将学会Linux系统上常见的压缩命令。

本关任务:对系统中已存在的文件/目录进行压缩操作。

相关知识

Linux下存在多个文件压缩工具,常用的有bzip2gzipzip。这三个工具都是可以将一个文件进行压缩操作,使其在不丢失任何信息的情况下占用较少的磁盘空间。而如何对于多个文件/目录进压缩操作呢?

我们通过上一关的学习,我们了解到了使用tar命令可以将多文件/目录打包生成一个文件,那么对于多文件/目录的压缩操作分为两步:第一步是将其进行打包,然后将打包过后的文件进行压缩操作。

接下让我们详细的学习bzip2gzipzip的使用方法。

bzip2

bzip2命令用于创建和管理(包括解压缩).bz2格式的压缩包。

具体命令如下:

bzip2 命令参数 指定要压缩的文件

常用命令参数如下:

  1. -z或——compress:强制执行压缩;
  2. -d或——decompress:执行解压缩;
  3. -f或-force:bzip2在压缩或解压缩时,若输出文件与现有文件同名,预设不会覆盖现有文件。若要覆盖。请使用此参数;
  4. -v或——verbose:压缩或解压缩文件时,显示详细的信息;

gzip

gzip命令用于创建和管理(包括解压缩).gz格式的压缩包。

具体命令如下:

gzip 命令参数 指定要压缩的文件

常用命令参数如下:

  1. -d或--decompress或----uncompress:解开压缩文件;
  2. -f或——force:强行压缩文件。不理会文件名称或硬连接是否存在以及该文件是否为符号连接;
  3. -l或——list:列出压缩文件的相关信息;
  4. -r或——recursive:递归处理,将指定目录下的所有文件及子目录一并处理;
  5. -v或——verbose:显示指令执行过程;

zip

zip命令对文件进行打包操作。zip是个使用广泛的压缩程序,文件经它压缩后会另外产生具有.zip扩展名的压缩文件。

具体命令如下:

zip 命令参数 指定生成的压缩文件名 要被压缩的文件/目录列表

常用命令参数如下:

  1. -d:从压缩文件内删除指定的文件;
  2. -q:不显示指令执行过程;
  3. -r:递归处理,将指定目录下的所有文件和子目录一并处理;
  4. -v:显示指令执行过程或显示版本信息;
  5. -u:更换较新的文件到压缩文件内;
  6. -x<范本样式>:压缩时排除符合条件的文件;

tar命令进行压缩

在上一关的学习中,我们学会了使用tar命令对多个文件/目录进行打包操作,如果针对多文件/目录进行压缩操作时,首先使用tar将其打包生成一个文件,然后使用bzip2gzip对其进行压缩,那么这里也可以使用tar命令一步就实现对多文件/目录进行压缩操作。

采用bzip2方式执行tar命令进行压缩的具体命令如下:

tar -jcvf 指定生成的压缩文件名 要被压缩的文件/目录列表

常用命令参数如下:

  1. -c 建立新的归档文件;
  2. -v 处理过程中输出相关信息;
  3. -f 对普通文件操作;
  4. -j 以bzip2对文件/目录进行压缩;

采用gzip进行压缩的具体命令如下:

tar -zcvf 指定生成的压缩文件名 要被压缩的文件/目录列表

常用命令参数如下:

  1. -c 建立新的归档文件;
  2. -v 处理过程中输出相关信息;
  3. -f 对普通文件操作;
  4. -z 以gzip对文件/目录进行压缩;

编程要求

在右侧编辑器中补充代码,对系统中已存在的文件/目录进行压缩操作,具体编程要求如下:

  • 使用tar命令将当前目录下的oldFile1oldFile2文件打包压缩成一个newFile.tar.gz文件;
  • 使用bzip2命令对当前目录下的oldFile.tar文件压缩;
  • 使用zip命令将当前目录下的oldDir目录所有文件/目录压缩生成oldDir.zip

任务描述

通常,我们上网下载的文件一般都是压缩过后的文件,通过本关的学习,我们可以学会如何将一个压缩文件进行解压操作。

本关任务:将压缩文件进行解压缩操作。

相关知识

Linux下存在多个文件压缩工具,上一关我们介绍了包括bzip2gzipzip。针对这三种压缩工具生成的压缩包,我们可以使用bunzip2gunzipunzip命令对其进行解压缩。

接下让我们详细的学习bunzip2gunzipunzip的使用方法。

bunzip2

bunzip2命令解压缩由bzip2指令创建的.bz2压缩包。使用bzip2 -d命令也可以将.bz2压缩包进行解压。

具体命令如下:

bunzip2 命令参数 指定要解压的文件

常用命令参数如下:

  1. -f或--force:解压缩时,若输出的文件与现有文件同名时,预设不会覆盖现有的文件;
  2. -k或——keep:在解压缩后,预设会删除原来的压缩文件。若要保留压缩文件,请使用此参数;
  3. -v或——verbose:解压缩文件时,显示详细的信息;
gunzip

gunzip命令解压缩由gzip指令创建的.gz压缩包。使用gzip -d命令也可以将.gz压缩包进行解压。

具体命令如下:

gunzip 命令参数 指定要解压的文件

常用命令参数如下:

  1. -f或-force:强行解开压缩文件,不理会文件名称或硬连接是否存在以及该文件是否为符号连接;
  2. -l或-list:列出压缩文件的相关信息;
  3. -q或-quiet:不显示警告信息;
  4. -r或-recursive:递归处理,将指定目录下的所有文件及子目录一并处理;
  5. -v或-verbose:显示指令执行过程;
unzip

unzip命令用于解压缩由zip命令压缩的.zip压缩包。

具体命令如下:

unzip 命令参数 指定要解压的文件

常用命令参数如下:

  1. -q:执行时不显示任何信息;
  2. -n:解压缩时不要覆盖原有的文件;
  3. -d<目录>:指定文件解压缩后所要存储的目录;

tar命令进行解压缩

在上一关的学习中,我们学会了使用tar命令对多个文件/目录进行打包压缩操作,本关将继续讲解使用tar命令对文件进行解压缩操作。

采用bunzip2进行解压缩的具体命令如下:

tar -jxvf 指定要解压的文件

常用命令参数如下:

  1. -x 或--ext\fract或--get:从备份文件中还原文件;
  2. -v 处理过程中输出相关信息;
  3. -f 对普通文件操作;
  4. -j 以bunzip2进行解压缩;

采用gzip进行压缩的具体命令如下:

tar -zxvf 指定要解压的文件

常用命令参数如下:

  1. -x 或--ext\fract或--get:从备份文件中还原文件;
  2. -v 处理过程中输出相关信息;
  3. -f 对普通文件操作;
  4. -z 以gunzip进行解压缩;

编程要求

在右侧编辑器中补充代码,将压缩文件进行解压,具体编程要求如下:

  • 使用tar命令解压当前目录下的oldFile.tar.gz文件;
  • 使用bunzip2命令解压当前目录下的oldFile.tar.bz2文件;
  • 使用unzip命令解压当前目录下的oldDir.zip

任务描述

在Linux系统中,如果要对一个文件进行操作,首先要求文件已经存在,如果文件不存在,则需要创建文件。

本关任务:学会使用C语言在Linux系统中创建文件操作。

相关知识

文件的创建操作是 I/O 操作的第一步。在Linux系统中creat系统调用可以实现对文件的创建。本关只介绍文件创建函数的使用方法。

在Linux系统中可以使用man命令来查询这些函数的使用方法。具体的查询命令为: man 2 函数名 其中,2表示查找系统调用函数,关于文件的创建、打开和关闭函数都是系统调用函数,因此使用2作为man命令的第一个参数。

文件的创建

创建文件的系统调用函数是creat,具体的说明如下:

  • 需要的头文件如下:
  • i. #include <sys/types.h>
  • ii. #include <sys/stat.h>
  • iii. #include <fcntl.h>
  • 函数格式如下: int creat (const char *pathname,mode_t mode); 参数说明:

pathname:需要创建文件的绝对路径名或相对路径名;

mode:用于指定所创建文件的权限;

常见的mode取值及其含义见下表所示:

  • 函数返回值说明: 调用成功时,返回值为 文件的描述符(大于0的整数);调用失败时,返回值为-1并设置错误编号errno

编程要求

本关的编程任务是补全右侧代码片段中BeginEnd中间的代码,具体要求如下:

  • 在当前目录下创建一个名为testFile的文件,并设置其权限为651

目录
相关文章
|
1天前
|
弹性计算 运维 自然语言处理
阿里云操作系统智能助手OS Copilot实验测评报告
OS Copilot是针对Linux的智能助手,助力学习、运维及编程。用户界面直观,自然语言交互方便新手。官方文档详尽,但初次配置略复杂,适合学生和开发者。在提高代码编写和调试效率、系统学习上得分高,功能亮点包括代码生成、问答和命令执行。用户期待更多操作系统支持、自动错误分析和系统排查功能。
101 3
|
4天前
|
存储 缓存 安全
【Linux】冯诺依曼体系结构与操作系统及其进程
【Linux】冯诺依曼体系结构与操作系统及其进程
42 1
|
4天前
|
缓存 监控 关系型数据库
深入理解Linux操作系统的内存管理机制
【7月更文挑战第11天】在数字时代的浪潮中,Linux操作系统凭借其强大的功能和灵活性,成为了服务器、云计算以及嵌入式系统等领域的首选平台。内存管理作为操作系统的核心组成部分,对于系统的性能和稳定性有着至关重要的影响。本文将深入探讨Linux内存管理的基本原理、关键技术以及性能优化策略,旨在为读者提供一个全面而深入的理解视角,帮助开发者和系统管理员更好地优化和管理Linux系统。
|
5天前
|
弹性计算 人工智能 运维
阿里云操作系统智能助手OS Copilot实验测评报告
阿里云操作系统智能助手OS Copilot实验测评报告
63 2
|
4天前
|
弹性计算 运维 Linux
基于在Alibaba Cloud Linux 3 的OS Copilot 产品评测
作为一名技术运维的工作者,每天做的最多一件事就是在Linux下敲各种各样的命令,或完成功能性的部署,或检查系统的稳定性。如果 OS Copilot 作为我的日常工具,我使用场景会更集中于快捷命令或脚本的实现,智能帮我生成各类功能脚本,为我提高运维效率。
基于在Alibaba Cloud Linux 3 的OS Copilot 产品评测
|
5天前
|
弹性计算 运维 监控
阿里云操作系统智能助手OS Copilot实验测评报告
阿里云OS Copilot助力学生提升学习效率,简化Linux操作。作为学生,体验者发现它在代码理解和诊断上极具价值,给予新手友好体验,但存在命令执行限制和错误处理问题。评分10/10,愿推荐并参与未来开发。功能上,知识问答、辅助编程和命令执行深受喜爱。对比其他产品,OS Copilot简洁集成,但需改善多命令支持和错误分析。期望支持更多操作系统及与ACK等工具联动,增强系统管理和故障排查。
30 1
|
5天前
|
人工智能 运维 自然语言处理
当Linux遇上AI:探索操作系统中的智能新纪元
阿里云的OS Copilot是专为Linux打造的智能助手,利用大模型提供自然语言交互、命令辅助及运维优化。它简化编程任务,生成脚本框架,提供代码审查建议,适合开发者和运维人员。
44 0
当Linux遇上AI:探索操作系统中的智能新纪元
|
3天前
|
弹性计算 运维
阿里云操作系统智能助手OS Copilot的实验测评报告
OS Copilot 产品体验摘要 用户角色与场景:一位计算机学生使用辅助学习和解决问题,特别是通过代码解释功能加深理解。 易用性与文档:初者可能会觉得有些细节不明确。 帮助程度:用户给予极高评价,对学习帮助大,评分10分,快速定位和解决代码问题,提升学习效率。 推荐与参与:用户愿意推荐给他人。 功能体验:用户尝试了所有功能,对知识问答、辅助编程和命令执行特别感兴趣,尤其是命令执行帮助大。 对比其他产品:OS Copilot优点是便捷、准确。 期望功能:用户希望增加自动报错分析和系统错误排查。 联动体验:用户期待,以实现更全面的工具集。 总结:整体体验积极,用户看好其潜力,期待改进和未来联动。
|
5天前
|
弹性计算 运维 Python
阿里云操作系统智能助手OS Copilot实验测评报告
**OS Copilot 产品测评摘要** - 学生使用,用于学习和编码,发现上手难度较高,指引文档不清晰,特别是Access ID设置和代码复制流程。 - 功能上,评分9分,辅助编程和知识问答功能显著提升了学习效率,减少了错误。 - 愿意推荐,并有兴趣参与开源开发以提升自我。 - 希望增强错误排查,提供具体错误原因和位置。 - 联动ACK智能助手可增强学习效果。 [链接]: https://developer.aliyun.com/topic/instructions-for-os-copilot
|
5天前
|
弹性计算 运维 自然语言处理
阿里云操作系统智能助手OS Copilot的实验测评报告
阿里云OS Copilot是AI驱动的Linux操作系统助手,助于系统管理和运维。学生反馈它在代码解释和编写上有很大帮助,给予8-9分的评价。功能亮点包括自然语言问答、辅助编程和命令解释,简化操作,提升效率。尽管易用,但需基础Linux知识。用户期待更多功能如系统优化建议和代码优化。与ACK智能助手配合,实现故障排查和运维。适合寻求效率提升的个人和团队。
34 0