如何在 Linux 中删除目录?

2025年03月17日 | 阅读 9 分钟

目录简介

在 Linux/Unix 操作系统中,文件就是文件,目录也是文件,一切皆文件,打印机、键盘、鼠标等设备也是文件。我们将解释 Linux 的文件结构或目录结构。

Linux 中的文件类型

How to Remove Directory in Linux?
  • 普通文件:也称为常规文件。普通文件可以是简单的文本、程序、视频或图像文件。它们可以是二进制或 ASCII 格式。它是 Linux 中最常用的文件。
  • 目录文件:目录文件是许多其他文件类型的仓库。它们可以是目录中的目录文件或子目录。
  • 设备文件:硬盘和 CD-ROM 等设备在类似 Windows 的操作系统中表示为驱动器盘符,例如 F: G: H:。但是,系统设备在 Linux 系统中表示为文件。例如:/dev/sda1、/dev/sda2 等。

文件存储在类似 Windows 的操作系统中不同数据驱动器(如 C: D: E:)的不同文件夹中。但是,在 Linux 操作系统中,文件以树状结构组织,从根目录开始。

Linux 文件系统层次结构的根从根目录开始,一切都从根目录开始。

以下是与根目录相关的基本顶级目录

  • /bin:可执行或二进制程序。
  • /home:它是默认的当前主目录。
  • /etc:系统配置文件。
  • /opt:第三方或可选软件。
  • /usr:用户关联程序。
  • /tmp:临时空间,通常在重启时清除。
  • /var:日志文件。

Linux 中的其他一些目录

  • /boot:它包括所有与引导相关的信息文件夹和文件,如 grub、conf 等。
  • /dev:它是设备文件位置,如 /dev/sda1、/dev/sda2 等。
  • /lost+found:它可以在此找到恢复的损坏文件片段。
  • /lib:它包括共享库和内核模块。
  • /media:它包括子目录,其中嵌入了可移动媒体设备。
  • /mnt:它包括临时挂载目录以挂载文件系统。
  • /run:它可以存储易失性运行时数据。
  • /proc:它是一个伪虚拟文件系统,包含使用特定 PID 或进程 ID 运行的进程信息。
  • /sbin:这些是二进制可执行程序。
  • /srv:它包括与服务器相关的服务器特定文件。
  • /sys:它是一个虚拟文件系统,用于存储并允许与系统链接的设备修改,适用于现代 Linux 发行版。

父目录、根目录和子目录

在文件系统的最高层次,目录被称为根目录。根目录包括所有其他文件和文件夹。除根目录外,所有目录都连接到另一个目录。包含当前目录的目录称为父目录,而放置在当前目录内的目录称为子目录。

这些子目录从目录树的根部分支出来。目录树是倒置的,不像实际的树。因此,根部在顶部,分支向下延伸。当我们进入任何子目录时,我们正在向下移动树。当我们进入目录的父目录时,我们正在向上移动树。

Linux 中的目录

  • / 目录
    它是一个用单个正斜杠 / 表示的根目录。在 Linux 目录结构中,它是最顶层的目录。它包括 Linux 系统上的所有目录、子目录和文件。Linux 目录的层次结构就是从这个根目录开始的。
    重要提示:根目录不应与 root 用户的主目录 (/root) 混淆。
  • /boot 目录
    它是 Linux 系统中最关键的目录之一。顾名思义,boot 目录包含 Linux 的引导文件,例如内核、引导加载程序和相关文件。像 vmlinuz 这样的文件表示压缩的 Linux 内核镜像。
  • /etc 目录
    此目录包含所有服务、第三方应用程序和已安装脚本的系统配置文件。它被认为是 Linux 系统的神经中枢。
  • /home 目录
    它是一个包含用户个人文件和文件夹的目录。默认情况下,在图形 Linux 系统上,home 目录包含 Public、Videos、Pictures、Downloads、Documents 和 Desktop 等文件夹。此外,home 目录还包含以 (.) 点符号为前缀的个人配置文件。对于登录 shell 会话,它们是包含用户特定设置的隐藏文件。
  • /root 目录
    对于 root 用户,它是主目录,也称为 root 用户的主目录。此外,root 帐户也称为超级用户、系统管理员、管理用户,或者只有 root 用户才能访问 Linux 中的系统文件和命令。
  • /dev 目录
    对于设备,此目录包含连接到系统的特殊文件或设备文件,例如鼠标、键盘和硬盘。它们不是任何用户都可以写入和读取的普通文件。它们是标准设备抽象,系统上的应用程序通过输入和输出系统调用与它们交互。
  • /opt 目录
    这是一个为第三方软件和附加软件包应用程序保留的目录,默认情况下未添加到系统的官方存储库中。例如,当我们安装 Java、Spotify、Discord 和 Skype 等应用程序时,它们会保存在 /opt 目录中。
  • /var 目录
    此目录可以存储系统生成的变量文件,其中包括假脱机文件、缓存和日志文件。
  • /bin 目录
    此目录包含系统中所有用户使用的基本系统命令、可执行程序和二进制文件。这些包括 history、wc、rpm、tar、df、du、cp、mv、cd、mkdir、cat、pwd、ls 等。
  • /sbin 目录
    它包括为具有 sudo 权限的用户或 root 用户保留的系统命令、实用程序和可执行文件。此类命令包括 swapon、ip、ifconfig、iptables、halt、fdisk、fsck、mkfs、reboot 等。
  • /usr 目录
    此目录是至关重要的目录之一,因为它包含大量数据。该目录包含只读的系统级文件。这些包括用户二进制文件、库及其文档、系统实用程序和程序。
  • /proc 目录
    这个目录有点奇怪。它是一个伪或虚拟文件系统,包含有关活动进程的重要信息。对于 Linux 内核,/proc 目录被认为是信息和控制中心。文件系统在系统启动时即时创建,并在设备断电后销毁。

分析目录及其优点

众所周知,Linux 是一个非常复杂的系统,与 Windows 操作系统不同,它需要一种有效的方式来启动、停止、重启和维护任何系统。在 Linux 中,所有进程都有一些定义明确的手册页、二进制文件、配置文件和信息文件。

  • 设备文件
    • /dev/hdc:它是一个伪设备,产生垃圾输出,重定向到 /dev/null 目录。
    • /dev/hda:它是第一个 IDE 硬盘的设备文件。
  • Linux 内核文件
    • /boot/vmlinux:它是 Linux 内核文件。
  • 系统配置文件
    • /etc/crontab:它是一个用于按时间间隔执行命令的 shell 脚本。
    • /etc/bashrc:此文件由 bash shell 使用,包含系统别名和默认值。
    • /etc/exports:它包含网络上存在的文件系统信息。
    • /etc/grub.conf:它是 grub 的引导加载程序配置文件。
    • /etc/group:它是一个用于指定安全组信息的文本文件。
    • /etc/fstab:它包含磁盘驱动器信息及其挂载点。
    • /etc/init.d:它是服务启动脚本。
    • /etc/hosts.deny:它包含被拒绝访问本地机器服务的宿主列表。
    • /etc/hosts.allow:它包含允许访问本地机器服务的宿主列表。
    • /etc/hosts:它包含 IP 信息和相关主机名。
    • /etc/lilo.conf:它包含 lilo 引导加载程序配置文件。
    • /etc/inittab:它包含 INIT 进程及其在不同运行级别下的通信。
    • /etc/modules.conf:对于系统模块,它包含配置文件。
    • /etc/issue:它允许更改登录前消息。
    • /etc/mtab:它包含当前挂载块的信息。
    • /etc/motd:它包含每日消息。
    • /etc/password:它包含 shadow 文件中的用户、系统密码和用户名。
    • /etc/printcap:它包含打印机信息。
    • /etc/profile.d:它包含其他脚本,例如登录后运行的应用程序脚本。
    • /etc/profile:它表示 bash shell 的默认值。
    • /etc/rc.d/init.d:它表示运行级别的初始化脚本。
    • /etc/rc.d:它包含脚本重复。
    • /etc/resolv.conf:系统正在使用的 DNS。
    • /etc/skel:它表示启动新用户主目录的脚本。
    • /etc/security:它包含终端名称,其中也可能进行 root 登录。
    • /etc/X11:对于 X-window 系统,它是一个目录树,包含所有 conf 文件。
    • /etc/termcap:它是一个 ASCII 文件,指定不同终端类型的行为。
  • 用户相关文件
    • /usr/sbin:它包含系统管理和超级用户命令。
    • /usr/lib:它包含对象库和文件。
    • /usr/share:它包含可共享的独立于架构的文本文件。
    • /usr/include:它包含 C 程序使用的标准包含文件。
    • /usr/bin/X11:它是 /usr/bin 的符号链接。
    • /usr/bin:它包含几乎所有可执行文件。
  • 伪和虚拟进程相关文件
    • /proc/swaps:它包含交换文件信息。
    • /proc/stat:它显示当前系统的详细统计信息。
    • /proc/mount:它包含已挂载文件系统的信息。
    • /proc/modules:当前使用的内核模块。
    • /proc/meminfo:它显示内存使用信息。
    • /proc/ioports:它包含服务器上设备使用的所有输出和输入地址。
    • /proc/interrupts:它包含每个 IRQ 的中断信息。
    • /proc/filesystems:它包含有关当前正在运行的进程的有用信息。
    • /proc/cpuinfo:它包含 CPU 信息。
  • 版本信息文件
    • /version:它显示 Linux 版本的信息。
  • 日志文件
    • /var/log/wtmp:它包含注销和登录信息的历史记录。
    • /var/log/messages:它包括所有全局系统消息。
    • /var/log/lastlog:它包含用户的最后登录信息。

删除 Linux 目录的命令

我们可以使用 rm 或 rmdir 命令来永久删除 Linux 中的任何目录

  • 使用命令,即 rm -r,删除非空目录。
  • 使用命令,即 rm -drmdir,删除空目录

在删除目录之前,我们必须知道目录名称。要查找目录和文件,我们可以使用命令,即 ls,并且我们可以使用命令,即 pwd,来知道我们所在的目录。

此外,我们用于这些命令的选项也很重要,以了解它们的工作方式。以下是 rm 命令中选项的简要说明

  • rm -d:它使用 rm 命令删除空目录。
  • rm -f:它在删除写保护文件时避免任何提示。
  • rm -r:它删除非空目录和相关内容。
  • rm -rf:它在删除非空写保护文件夹时避免任何提示。
  • rm -I:它在删除三个以上文件之前只提示一次。
  • rm -i:它在删除所有文件之前提示。
  • rm ?:它是一个通配符,表示单个字符。
  • rm *:它是一个通配符,表示多个字符。
  • rmdir -v:它打印指定目录已删除的详细信息。
  • rmdir -p:它删除空目录和相关的父目录。

rm 命令的语法

重要提示:要使用 rm 命令删除多个文件目录,我们可以添加多个用空格分隔的目录和文件名称。

  • 尝试在不带选项的情况下使用 rm 删除目录会显示错误消息。
    例如
    How to Remove Directory in Linux?
  • 如果我们想删除一个空目录,我们可以将标志,即 -d,添加到 rm。
    例如
    How to Remove Directory in Linux?
  • 我们还可以使用标志,即 -r,删除包含文件和子目录的目录。
  • 下图显示了目录的树层次结构,其中包括两个子目录以及多个文本文件。
    例如
    How to Remove Directory in Linux?
  • 使用标志,即 -r,删除整个目录,包括文件和子目录,而标志,即 -v,将列出过程的所有步骤作为结果。
    例如
    How to Remove Directory in Linux?
  • 选项,即 -i,会显示一个提示,确认目录删除。我们需要输入 Y 并单击 Enter 按钮才能继续。
    例如
    How to Remove Directory in Linux?

rmdir 命令的语法

  • 对任何非空目录使用 rmdir 会生成错误。
    例如
    How to Remove Directory in Linux?
  • rmdir 命令允许借助通配符删除具有相同名称的多个目录。
    例如
    How to Remove Directory in Linux?