【头歌】Linux 文件/目录管理
第1关:Linux之文件创建/删除
任务描述
本关主要讲解在 Linux 命令行下如何对文件进行创建和删除操作。
本关任务:创建一个新的文件,同时将一个已经存在的文件删除。
提示:连接命令行后,先执行命令
cd /tmp, 进入临时目录,再执行练习操作。所有操作在/tmp/下执行,否则可能破坏实验环境,导致评测不能通关。
相关知识
Linux 几乎大多数工作都可以在命令行下完成,除非要运行图形化工具。 Linux bash shell 提供了许多命令,例如:在命令行下可以轻松的完成文件的创建和删除。
本关将介绍如何在 Linux 命令行下创建文件和删除文件。
Linux创建文件
Linux 中使用 touch 命令来创建一个空文件。
具体命令如下: touch 文件名
具体说明:
-
如果一次想创建多个文件,则每个文件名用空格隔开。
-
touch命令创建一个指定的新文件,并将当前登录用户作为文件所有者。 -
由于
touch命令创建的文件为空,所以文件的大小为0。 -
touch命令还可以用于更改文件的访问时间和修改时间,而不改变文件的内容。
Linux删除文件
Linux 中使用 rm 命令来删除一个已经存在的文件。
具体命令如下: rm 参数 文件名
常用参数如下:
-f:强制删除文件或目录;-i:删除已有文件或目录之前先询问用户;-r或-R:递归处理,将指定目录下的所有文件与子目录一并处理;-i:删除已有文件或目录之前先询问用户。
具体说明:
-
如果一次想删除多个文件,则每个文件名用空格隔开。
-
rm命令可以使用通配符来删除文件。
编程要求
本关的编程任务是补全右侧代码片段中 Begin 至 End 中间的代码,具体要求如下:
- 新创建两个文件空文件
file1和file2。 - 删除系统已存在的两个文件
oldFile1和oldFile2。
测试说明
本平台只需将需要的命令写入到对应的命令填写区域(命令间使用换行分隔)即可,平台会自动读入和执行用户写入的命令,并判断用户输入的命令是否符合要求。
开始你的任务吧,祝你成功!
代码如下
#!/bin/bash
#在以下部分写出完成任务的命令
#***********begin*************#
touch file1
touch file2
rm -r -f oldFile1
rm -r -r oldFile2
#************end**************#
第2关:Linux之目录创建/删除
任务描述
本关主要讲解在 Linux 命令行下如何对目录进行创建和删除操作。
本关任务:创建一个新的空目录,同时将一个已经存在的目录删除。
提示:连接命令行后,先执行命令 cd /tmp , 进入临时目录,再执行练习操作。所有操作在 /tmp/ 下执行,否则可能破坏实验环境,导致评测不能通关。
相关知识
本关将介绍如何在 Linux 命令行下创建目录和删除目录。
Linux创建目录
Linux 中使用 mkdir 命令来创建一个空目录。
具体命令如下: mkdir 参数 目录名
常用参数如下:
-p或--parents:若所要建立目录的上层目录目前尚未建立,则会一并建立上层目录。
具体说明:
-
如果一次想创建多个目录,则每个目录名用空格隔开。
-
mkdir命令创建一个指定的目录,并将当前登录用户作为目录所有者。 -
mkdir命令创建一个空目录后,该目录下只存在两个特殊的目录,分别是.和..。
Linux删除目录
Linux 中使用 rmdir 命令来删除一个已经存在的空目录。
具体命令如下: rmdir 参数 目录名
常用参数如下:
-p或--parents:删除指定目录后,若该目录的上层目录已变成空目录,则将其一并删除;
具体说明:
-
如果一次想删除多个空目录,则每个目录名用空格隔开。
-
rmdir命令可以使用通配符来删除目录。
如果想删除的目录不为空,则先使用 rm 命令将目录下的所有文件都清空,然后再使用 rmdir 将目录删除,或者直接使用 rm -r 命令直接递归的删除整个目录。
编程要求
本关的编程任务是补全右侧代码片段中 Begin 至 End 中间的代码,具体要求如下:
- 新创建两个空目录
newDir1和newDir2。 - 删除系统已存在的两个目录
oldDir1和oldDir2,其中oldDir1目录为空、oldDir2目录不为空。
代码如下
#!/bin/bash
#在以下部分写出完成任务的命令
#***********begin*************#
mkdir newDir1
mkdir newDir2
rm -r -f oldDir1
rm -r -f oldDir2
#************end**************#
第3关:Linux之文件复制/重命名
编程要求
本关的编程任务是补全右侧代码片段中 Begin 至 End 中间的代码,具体要求如下:
- 将当前目录下的文件
file1和file2拷贝到目录Dir下; - 将当前目录下的文件
file1拷贝到目录Dir下并重命名为file1Cpy; - 将当前目录下的文件
file3和file4移动到目录Dir下; - 将当前目录下的文件
file5重命名为file6。
代码如下
#!/bin/bash
#在以下部分写出完成任务的命令
#***********begin*************#
cp file1 Dir
cp file2 Dir
cp file1 Dir/file1Cpy
mv file3 Dir
mv file4 Dir
mv file5 file6
#************end**************#
第4关:Linux之目录复制/重命令
编程要求
本关的编程任务是补全右侧代码片段中 Begin 至 End 中间的代码,具体要求如下:
- 将当前目录下的目录
Dir1和Dir2拷贝到目录Dir下; - 将当前目录下的目录
Dir1拷贝到目录Dir下并重命名为Dir1Cpy; - 将当前目录下的目录
Dir3和Dir4移动到目录Dir下; - 将当前目录下的目录
Dir5重命名为Dir6。
#!/bin/bash
#在以下部分写出完成任务的命令
#***********begin*************#
cp -r Dir1 Dir
cp -r Dir2 Dir
cp -r Dir1 Dir/Dir1Cpy
mv Dir3 Dir
mv Dir4 Dir
mv Dir5 Dir6
#************end**************#
第5关:Linux之文件/目录内容查看
编程要求
本关的编程任务是补全右侧代码片段中 Begin 至 End 中间的代码,具体要求如下:
- 查看当前目录下的文件
file1的所有内容; - 查看当前目录下的文件
file2的头5行内容; - 查看当前目录下的文件
file2的末尾5行内容; - 查看目录
/home目录下的所有内容(包括隐藏内容)。
代码如下
#!/bin/bash
#在以下部分写出完成任务的命令
#***********begin*************#
cat file1
head -5 file2
tail -5 file2
ls -a /home
#************end**************#
志向不过是记忆的奴隶,生气勃勃地降生,但却很难成长。 —— 莎士比亚
开始你的任务吧,祝你成功!
如果你觉得这一关的内容对你有帮助,请你在下面点赞。