该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
4.3 新增fc命令,实现两个文件的比较
命令形式:fc
命令功能:逐个字节比较指定的两个文件,若相同,显示“文件内容相同”字样;若不同,显示第一个不同字节的位置和各自的内容。若文件不存在则报错。
4.4 新增replace命令,实现文件取代
命令形式:replace
命令功能:以“文件名”指定的文件,取代“目录名”指定目录中的同名文件。
请按以下要求设计replace命令的函数:
若指定文件或被取代文件不存在,则报错;
若被取代的是只读属性的文件时,应询问用户;
具有隐藏和系统属性的文件不能被取代;
若目录名参数缺省,则取代当前目录的同名文件;
文件名指定的文件和被取代的文件不应该是同一个文件,即不能自己取代自己。
4.5 新增move命令,实现文件“搬家”及子目录改名
命令形式:move
命令功能:将“文件名”指定的文件或目录,移动到“目标名”指定目录中(名字保持不变)。此命令也可改变子目录名。“文件名”指定**作的文件或目录,可以是目录名;“目录名”指定“文件名”的新位置或子目录的新名字,即必须是目录名,不能是文件名。文件或子目录转移时不能改名。
若转移的是一个文件,且目录名指定的目录原来已经存在,则将该文件转移到指定目录中;若指定目录中有同名文件,则询问是否覆盖,若同意则覆盖之。
若转移的是一个子目录,而“目录名”指定的子目录不存在,则move命令执行子目录改名操作(必须是同一目录内);若指定目录存在,则将“文件名”指定的目录转移到该目录中,但若指定目录中存在与“文件名”指定的目录同名的子目录,则报错。
move命令的要点归纳如下:
(1) 文件或目录,无重名时,可转移到目标目录中(只能同名转移,转移必定是不同目录的);
(2) move命令可对子目录改名,但不能用于文件改名(改名操作必定是同目录进行的);
(3) 转移时,文件可覆盖文件,目录也可覆盖文件;但文件或目录都不能覆盖目录。
应用举例:
① 将当前目录中的子目录lin,改名为chen,可输入如下命令:
move lin chen
【注】前提是lin是当前目录中的一个子目录,而当前目录中无chen子目录和chen文件。
② 将当前目录中的子目录lin,转移到子目录/bin中,可输入如下命令:
move lin /bin
【注】前提是lin是当前目录中的一个子目录,而根目录中已存在子目录bin,且/bin中无名字为lin的子目录。此命令可覆盖子目录/bin中的名字为lin的文件(要询问用户)。
③ 将目录/usr中的文件boy,转移到当前目录下的bin子目录中,可以输入如下命令:
move /usr/boy bin
【注】前提是boy是目录/usr中的一个文件,而当前目录中已存在子目录bin,且bin中无名字为boy子目录。若bin目录中已存在文件boy,则询问用户是否覆盖。
【说明】新增move命令和新增batch命令两项工作可任选其一。
4.6 新增batch命令,实现批处理
(注:设计此命令与设计move命令命令两项工作可任选其一)
命令形式:batch batchfile
命令功能:从磁盘文件batchfile逐行读入命令行执行,直到batchfile中所有命令行都执行完毕为止。
batchfile是一个预先编好的文本文件,其内容是多条可执行命令。例如,预先编好文本文件test.txt,其内容为: