咸鱼鱼在某学期的计算思维测试中出了一道有关Linux命令行的题,给很多同学带来了快乐。
这次,他又出了一道有关Linux命令行的题目。
计算机文件系统中通过目录(文件夹)来对文件进行管理。在许多系统中可以使用图形化的资源管理器来操作目录,使用鼠标点击不同的文件夹,切换当前的目录。而除了图形化的资源管理器,基于终端的资源管理器也十分常见。
如在Linux Bash下,可以使用 pwd
和 cd
等命令来操作目录(文件夹),当然,也可以使用 mkdir
和 ls
来新建目录和查看当前目录下的所有目录和文件。本题中咸鱼鱼想让大家模拟Linux Bash下的 mkdir
和 ls
这两个命令。
mkdir
即为 make directory
,意为创建一个目录(文件夹),命令格式为 mkdir path
。其中 path
表示一条路径,一条路径通常会由多个字符串与多个斜杠 /
组成。本题中保证 path
是绝对路径,以 /
开头,以 /
结尾,不包含空格且一定合法。同时,本题保证 mkdir
不会递归创建文件夹,即保证每次 新建且只新建 一个文件夹。
在真实环境中,如果你想使用
mkdir
来递归创建多个文件夹,那么你需要加入-p
选项,如mkdir -p ~/d1/d2/
。
假设目前在 /home/YXHXianYu/
这个目录下有两个文件夹 dir1
和 dir2
。那么如果执行了 mkdir /home/YXHXianYu/dir3/
,那么这个目录下就会存在三个文件夹 dir1
,dir2
和 dir3
。
ls
即为 list
,意为列出目录中的文件和子目录,命令格式为 ls path
。保证 path
已经创建且不存在任何文件,只涉及目录。
假设目前在 /home/YXHXianYu/
这个目录下有两个目录 dir1
和 dir2
。那么如果执行了 ls /home/YXHXianYu/
,那么终端就会打印出 dir1 dir2
(目录间以空格分割)。
初始时,环境只存在根目录,即 /
,不存在其他任何目录。
第 $1$ 行为一个正整数 $n( 1 \leq n \leq 10^2)$,表示接下来共有 $n$ 行命令。
第 $2$ 行至第 $2+n-1$ 行,每行为一条命令,命令为 mkdir
或 ls
。
每条命令均由两个 不包含空格 的字符串组成,分别记为 command
和 path
。command
表示命令类型,只能为 mkdir
或 ls
;path
表示目标路径。
我们保证 path
是绝对路径,以 /
开头,以 /
结尾,不包含空格。在 mkdir
中,我们保证路径中只有最后一个字符串对应的目录不存在;在 ls
中,我们保证路径存在。
保证一条命令的长度不超过 $1000$ 个字符,文件夹名字不超过 $10$ 个字符,文件夹名称仅有 $a-z$ 组成。
保证至少有一条命令为 ls
。
对于每条 ls
命令输出一行,表示目标路径下的所有文件夹。输出的目录只需要包含目录名称,不需要包含 /
等字符。
若一个目录下有多个文件夹,请按照 字典序顺序 从小到大 输出这些文件夹。字典序的定义如下:我们称一个字符串 $x$ 字典序小于字符串 $y$,当且仅当 $x$ 是一个 $y$ 的前缀且 $x \neq y$,或者存在任意一个 $i\ (1\leq i \leq min(|x|, |y|)$,使得 $x_i < y_i$,并且对于任意的 $j\ (1\leq j < i)$,有 $x_j = y_j$。其中,$|a|$ 表示字符串 $a$ 的长度,$a_i$ 表示字符串 $a$ 从左往右数的第 $i$ 个字符。
若该目录下不包含任何文件夹,请输出 EMPTY
!这和真实环境不同!
14 mkdir /usr/ mkdir /usr/bin/ mkdir /home/ mkdir /home/yxhxianyu/ mkdir /home/lovekdl/ mkdir /home/makisechri/ ls / ls /usr/ ls /home/ ls /home/yxhxianyu/ mkdir /home/yxhxianyu/aba/ mkdir /home/yxhxianyu/abc/ mkdir /home/yxhxianyu/aaa/ ls /home/yxhxianyu/
\n · \n · \n · \n · \n · \n · \n · \n · \n · \n · \n · \n · \n · \n · \n
home usr bin lovekdl makisechri yxhxianyu EMPTY aaa aba abc
· \n \n · · \n \n · · \n