在 Linux 命令行中删除文件和文件夹
您已经学会了创建文件和目录。现在是时候了解如何在命令行中删除文件和文件夹了。
在终端基础知识系列的前面章节中,您学习了创建新文件和目录(文件夹)。
现在让我们看看如何删除 Linux 终端中的文件和文件夹。
删除文件
要删除文件,您可以按以下方式使用 rm 命令:
rm filename_or_path如果文件被成功删除,您将不会看到任何输出。
下面是我删除了名为 new_file 的文件之一的示例。当我列出目录内容时,您可以看到 new_file 不再存在。
您还可以在同一命令中删除多个文件:
rm file1 file2 file3让我展示一个在单个命令中删除两个文件的示例。
?️练习文件删除
让我们练习一下刚刚学到的内容。创建一个名为practice_delete的目录并切换到该目录:
mkdir practice_delete && cd practice_delete现在创建一些空文件:
touch file1 file2 file3删除文件3:
rm file3现在,让我们做一些额外的事情。运行此命令并更改 file2 的权限:
chmod u-w file1 file2现在尝试删除 file2:
rm file2您是否看到消息“删除写保护文件”?那是因为您从此文件中删除了写入权限(用于修改)。
您可以按 Y 或 Enter 键确认删除,或按 N 拒绝删除。
如果您不想看到此消息但仍将其删除,可以使用强制删除选项-f。通过删除 file1 来尝试:
rm -f file1以下是上述所有示例的重播,以帮助您:
Linux命令行中没有垃圾箱。文件被删除后,您将无法像在图形文件管理器中那样撤消将其从垃圾箱中恢复的操作。因此,删除文件时要格外小心。
删除但要小心
缺少垃圾箱使得删除成为一种永久性的工作。这就是为什么您应该小心删除哪些文件。
有一个带有选项-i的交互模式。这样,系统会要求您确认删除。
rm -i filename当您根据特定模式删除多个文件时,这非常有用。
这是一个示例,我以交互方式删除名称中与 file_ 模式匹配的所有文件。我删除了一些并保留了一些交互模式。
我建议切换到文件所在的目录,然后删除它们。这有助于减少由文件路径中的拼写错误引起的任何可能性。
删除目录
Linux 中有一个专门的 rmdir 命令用于删除目录。
rmdir dir_name但是,它只能删除空目录。如果目录中有任何文件或子目录,rmdir 命令将抛出错误。
abhishek@linux:~/practice_delete$ rmdir dir2
rmdir: failed to remove 'dir2': Directory not empty这使得它在大多数情况下不太有用。
那么,如何删除非空文件夹呢?好吧,您可以使用之前用于删除文件的相同 rm 命令。
是的,相同的 rm 命令,但带有递归选项 -r:
rm -r dir_name?️Exercise文件夹删除
让我们练习一下你所学到的知识。
如果您还不存在,请切换到practice_delete 文件夹。现在,创建两个目录 dir1 和 dir2。
mkdir dir1 dir2在dir2中创建一个文件:
touch dir2/file现在尝试使用 rmdir 命令删除目录:
rmdir dir1rmdir dir2由于 dir2 不为空,因此 rmdir 命令将失败。相反,请使用带有递归选项的 rm 命令:
rm -r dir2以下是上述所有命令示例的重播,可以帮助您:
使用 rm 命令的递归选项删除目录时,交互式删除模式更加有用:
rm-ri dir_name
因此,您学会了使用 Linux 命令删除文件和文件夹。是时候多练习一下了。
测试你的知识
准备一个如下所示的目录树:
.
├── dir1
│ ├── file1
│ ├── file2
│ └── file3
├── dir2
├── dir3
└── file
基本上,您在当前目录(practice_delete)中创建一个名为 file 的文件和三个目录 dir1、dir2 和 dir3。然后在 dir1 中创建文件 file1、file2 和 file3。
现在执行以下操作:
删除
file2。切换到
dir3并强制删除上层目录中名为file的文件。删除 dir1 的所有内容,但不删除目录本身。
列出
dir的内容。
我鼓励您在 It's FOSS 社区论坛中讨论练习问题。
一切进展顺利。您已经学习了一些基本知识,例如切换目录、检查目录内容、创建和删除文件和目录。在下一章中,您将了解如何在终端中复制文件和文件夹。敬请关注!


