如何在Linux终端中删除文件和目录

R M rmdir 命令删除Linux,macOS和其他类似Unix的操作系统上的文件和目录。它们类似于 德尔 德雷特里 Windows和DOS中的命令。这些命令功能非常强大,并且有很多选择。

重要的是要注意,使用以下命令删除的文件和目录 R Mrmdir 不要移到垃圾箱。它们会立即从您的计算机中删除。如果您不小心使用这些命令删除了文件,则只能通过备份来还原它们。

如何使用rm删除文件

最简单的情况是删除当前目录中的单个文件。输入 R M 命令,一个空格,然后是您要删除的文件的名称。

rm file_1.txt

如果文件不在当前工作目录中,请提供文件位置的路径。

rm ./path/to/the/file/file_1.txt

您可以将多个文件名传递给 R M。这样做会删除所有指定的文件。

rm file_2.txt file_3.txt

通配符可用于选择要删除的文件组。这 * 代表多个字符,并且 ? 代表一个字符。此命令将删除当前工作目录中的所有png图像文件。

rm * .png

此命令将删除所有具有单个字符扩展名的文件。例如,这将删除File.1和File.2,但不会删除File.12。

R M *。?

如果文件被写保护,则在删除文件之前将提示您。您必须以 ÿ 或者 ñ 然后按“ Enter”。

降低使用风险 R M 与通配符一起使用 -一世 (互动)选项。这要求您确认每个文件的删除。

rm -i * .dat

-F (强制)选项与交互式相反。即使文件被写保护,它也不会提示您进行确认。

rm -f文件名

如何使用rm删除目录

要删除空目录,请使用 -d (目录)选项。您可以使用通配符(*?),就像使用文件名一样。

rm -d目录

提供多个目录名将删除所有指定的空目录。

rm -d directory1目录2 / path / to / directory3

要删除不为空的目录,请使用 -r (递归)选项。需要明确的是,这将删除目录以及其中包含的所有文件和子目录。

rm -r目录1目录2目录3

如果目录或文件受写保护,则将提示您确认删除。要删除不为空的目录并取消显示这些提示,请使用 -r (递归)和 -F (强制)选项。

rm -rf目录

这里需要注意。犯了一个错误 rm -rf 该命令可能会导致数据丢失或系统故障。这很危险,谨慎是最好的政策。为了了解目录结构和将被删除的文件 rm -rf 命令,使用 命令。

合适的 如果您使用的是Ubuntu或其他基于Debian的发行版,则将该软件包安装到系统上。在其他Linux发行版上,请改用Linux发行版的程序包管理工具。

sudo apt-get安装树

运行 该命令将生成一个简单易懂的目录结构图,并从中运行该目录下的文件。

您也可以提供一条通往 命令使其从文件系统中的另一个目录启动树。

树路径/到/目录

R M 命令也有 -一个文件系统,--no-preserve-root,--preserve-root 选项,但仅建议高级用户使用。如果出现问题,则可能会意外删除所有系统文件。有关更多信息,请查阅命令的手册页。

如何使用rmdir删除目录

还有另一个命令,叫做 rmdir,可用于删除目录。和...之间的不同 R Mrmdir 就是它 rmdir 只能删除空目录。它永远不会删除文件。

最简单的情况是删除一个空目录。与 R M,您可以将多个目录名称传递给 rmdir ,或目录路径。

通过将名称传递给来删除当前目录中的单个目录 rmdir :

rmdir目录

通过将名称列表传递到来删除多个目录rmdir :

rmdir目录1目录2目录3

通过指定该目录的完整路径来删除不在当前目录中的目录:

rmdir /路径/到/目录

如果您尝试删除不为空的文件夹, rmdir 会给您一条错误信息。在下面的例子中 rmdir 成功且无提示地删除 客户 目录,但拒绝删除 专案 目录,因为它包含文件。这 专案 目录保留原样,并且其中的文件保持不变。

什么时候 rmdir 给出“目录不为空”错误,它将停止处理在命令行中传递给它的目录。如果您要求它删除四个目录,而第一个目录中包含文件, rmdir 会给您错误消息,并且仅执行其他操作。您可以通过以下命令强制其忽略这些错误: --ignore-fail-on-non-empty 选项,以便处理其他目录。

在下面的示例中,两个文件夹已传递到 rmdir, 这些都是 工作/报告工作/报价 。这 --ignore-fail-on-non-empty 选项已包含在命令中。这 工作/报告 文件夹中有文件,因此 rmdir 无法删除它。这 --ignore-fail-on-non-empty 选择权 rmdir 忽略该错误并转到需要处理的下一个文件夹,即 工作/报价。这是一个空文件夹,并且 rmdir 删除它。

这是使用的命令。

rmdir --ignore-fail-on-non-empty work / reports / work / quotes

您可以使用 -p (parents)选项可删除目录并删除其父目录。之所以有效,是因为 rmdir 从目标目录开始,然后返回到父目录。该目录现在应该为空,因此可以将其删除 rmdir,然后重复该过程以逐步退回提供给 rmdir.

在以下示例中,传递给的命令 rmdir 是:

rmdir -p工作/发票

这俩 发票工作 目录被删除。

无论您使用的是Bash还是任何其他Shell,Linux均可为您提供灵活而强大的命令,使您可以直接从终端命令行中删除目录和文件。有些人喜欢拥有围绕终端的工作流程。其他人可能别无选择。他们可能正在未安装GUI的服务器上工作,或者在Raspberry Pi等无头系统上的远程会话上工作。这些命令非常适合该人群。

但是,无论您喜欢哪种工作流程,这些命令都非常适合被包含在Shell脚本中。如果脚本是由 克朗 作业,它可以帮助自动执行日常整理工作,例如清除不需要的日志文件。如果您调查该用例,请记住这些命令的功能,仔细测试所有内容,并始终维护最近的备份。