【实验内容】
使用shell
进行编程,使得程序能够完成以下功能:
将给定的源文件夹中的文件按照后缀名进行分类,并复制到目标文件夹中的各子文件夹中(各子文件夹以对应后缀名作为文件夹名)。同时,在目标文件夹中,应当有一个analysis.txt
的分析文件,至少需要记录各文件的原始路径,现路径与其后缀名等信息。
【基本要求】
-
源文件夹与目的文件夹通过参数的方式传入,若未指定源文件夹,则以当前文件夹(
./
)为源文件夹;若未指定目标文件夹,则需要在临时目录(/tmp
)中创建临时文件夹来进行存储。 -
程序应当判断目标文件夹是否已存在,若已存在,则需要在文件夹名后面加上一个随机子串,防止破坏原有文件夹结构。
-
若出现文件重名,需要在新加入的文件后缀名前添加数字段以保证复制的正常进行,
如:若main.cpp发生冲突,则需要修改文件名为main.2.cpp,依次类推。
-
程序需要输出源文件夹、目标文件夹、分析文件的路径。
-
分析文件可以使用column命令进行对齐。
【主要知识】
-
shell条件控制
-
shell函数
-
文件、文件夹的操作
-
文件的读写
-
其他常用命令
【参考资料】