Skip to content

lsq6815/Linux-Shell-Expr

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Linux课程shell编程实验任务书


实验报告

【实验内容】

使用shell进行编程,使得程序能够完成以下功能:

将给定的源文件夹中的文件按照后缀名进行分类,并复制到目标文件夹中的各子文件夹中(各子文件夹以对应后缀名作为文件夹名)。同时,在目标文件夹中,应当有一个analysis.txt的分析文件,至少需要记录各文件的原始路径,现路径与其后缀名等信息。

【基本要求】

  • 源文件夹与目的文件夹通过参数的方式传入,若未指定源文件夹,则以当前文件夹(./)为源文件夹;若未指定目标文件夹,则需要在临时目录(/tmp)中创建临时文件夹来进行存储

  • 程序应当判断目标文件夹是否已存在,若已存在,则需要在文件夹名后面加上一个随机子串,防止破坏原有文件夹结构。

  • 若出现文件重名,需要在新加入的文件后缀名前添加数字段以保证复制的正常进行,

    如:若main.cpp发生冲突,则需要修改文件名为main.2.cpp,依次类推。

  • 程序需要输出源文件夹、目标文件夹、分析文件的路径。

  • 分析文件可以使用column命令进行对齐。

【主要知识】

  1. shell条件控制

  2. shell函数

  3. 文件、文件夹的操作

  4. 文件的读写

  5. 其他常用命令

【参考资料】

  1. 菜鸟教程shell教程

  2. Shell scripting: Parsing command-line arguments and flags easily

  3. Shell正则表达式

  4. How to Increment and Decrement Variable in Bash (Counter)

  5. linux shell实现随机数多种方法(date,random,uuid)

About

Linux课程shell编程实验任务

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages