使用 mkdir、rmdir 和 rm 创建与删除目录结构
在这一步中,你将学习如何创建和删除目录。将文件组织到目录的分层结构中是 Linux 中的一项基本任务。我们将使用 mkdir 命令创建目录,使用 rmdir 删除空目录,以及使用 rm 删除目录及其所有内容。所有命令都将在你的默认目录 ~/project 中执行。
首先,让我们创建一个简单的目录。mkdir 命令代表「make directory」(创建目录)。
在终端中执行以下命令来创建一个名为 cars 的目录:
mkdir cars
要验证目录是否已创建,可以使用 ls -ld 命令。-l 选项提供长列表格式,-d 选项仅列出目录条目本身,而不是其内容。
ls -ld cars
你应该会看到类似下面的输出,确认 cars 目录已创建。权限字符串开头的 d 表示这是一个目录。
drwxr-xr-x 2 labex labex 4096 May 20 10:30 cars
现在,让我们删除这个目录。rmdir 命令用于删除「空」目录。
rmdir cars
再次运行 ls -ld 命令验证其是否已被删除。
ls -ld cars
这一次,你会收到一条错误消息,因为该目录已不存在。这证明 rmdir 执行成功。
ls: cannot access 'cars': No such file or directory
rmdir 命令仅适用于空目录。如果我们有一个嵌套的目录结构该怎么办?让我们尝试创建一个目录结构 pastry/pies/cakes。为了根据需要创建父目录,我们必须在 mkdir 中使用 -p(parents)选项。
执行以下命令:
mkdir -p pastry/pies/cakes
要查看刚刚创建的整个目录结构,请使用带有 -l(长格式)和 -R(递归)选项的 ls 命令。
ls -lR pastry
输出将显示 pastry 目录及其子目录 pies 和 cakes。
pastry:
total 4
drwxr-xr-x 3 labex labex 4096 May 20 10:35 pies
pastry/pies:
total 4
drwxr-xr-x 2 labex labex 4096 May 20 10:35 cakes
pastry/pies/cakes:
total 0
现在,让我们尝试使用 rmdir 删除 pastry 目录。
rmdir pastry
为什么这个命令失败了?终端会显示一条错误消息:
rmdir: failed to remove 'pastry': Directory not empty
这是因为 rmdir 只能删除空目录,而 pastry 包含了 pies 子目录。
要删除一个目录及其所有内容(包括子目录和文件),必须使用带有 -r(递归)选项的 rm 命令。请务必小心使用此命令,因为它会永久删除数据。
rm -r pastry
如果执行成功,该命令不会产生任何输出。你可以通过再次运行 ls -ld pastry 来验证 pastry 目录是否已被完全删除,这应该会导致「No such file or directory」错误。
ls -ld pastry