
要在 Linux 中删除文件或文件夹,使用的 Linux 命令是 rm 或 rmdir。rm 命令的意思是 “remove”,用于删除文件和目录。通过使用各种选项,你可以删除文件、目录,甚至是目录中的内容。例如,rm filename 会删除一个文件,而 rm -r directoryname 会删除一个目录及其所有内容。
rmdir 命令代表 “删除目录”,专门用于删除空目录。如果目录中包含任何文件或子目录,rmdir 命令将不会删除它,并会显示一条错误信息。相比之下,带有 -r 选项的 rm 命令可以删除非空目录。从本质上讲,rm 的用途更广泛,而 rmdir 更专门用于删除空目录。
在这篇文章中,我们将介绍使用 rm 和 rmdir 的不同方法。
如何使用 rm
1. 删除一个文件
rm [file]
rm 命令用于删除单个文件。为此,请键入 rm,然后输入要删除的文件名。
示例:
下面的命令用于删除名为 example.txt 的特定文件,该文件位于名为 myfolder 的目录中。
rm myfolder/example.txt
下面举例说明其工作原理:
- 假设你有一个名为 myfolder的目录,目录中有一个名为example.txt的文件。
- 运行命令 rm myfolder/example.txt。
- myfolder中的文件- example.txt将被删除,默认情况下终端中不会显示任何输出信息。
- 如果你再次尝试访问文件 example.txt,就会收到类似 “No such file or directory” 的错误信息。
在运行该命令之前,如果有
myfolder/ └── example.txt
运行命令后,结构如下:
myfolder/
2. 无需确认即可删除文件
rm -f [file]
该选项允许用户无需确认即可删除受写保护的文件。
示例:
假设当前目录中有一个名为 file1.txt 的文件,你想删除它。可以运行以下命令
rm -f file1.txt
由于使用了 -f 选项,因此不会有确认提示,文件将被立即删除。如果操作成功,终端将不会显示任何输出。如果之后尝试查看目录内容,会发现 file1.txt 已不复存在。
3. 删除多个文件
rm [file1] [file2] [file3]
使用 rm 命令,以文件名作为参数,一次删除多个文件。
示例:
在运行该命令前,假设你的目录中有以下文件:
file1.txt file2.txt file3.txt otherfile.txt
你运行了 rm file1.txt file2.txt file3.txt 命令。
运行该命令后, file1.txt, file2.txt, 和 file3.txt 文件被删除,你的目录现在看起来像这样:
otherfile.txt
4. 显示输出信息
rm -v [filename]
通过 -v (verbose)选项,可以获取有关删除内容的信息。
示例:
当你执行 rm -v example.txt 命令时,会得到以下输出结果:
removed 'example.txt'
在这个例子中,文件 example.txt 被删除,系统会打印一条确认文件已被删除的信息。如果文件不存在,则会出现类似 rm: cannot remove 'example.txt': No such file or directory 的错误信息。
5. 删除文件前提示确认
rm -i [filename]
该选项用于在删除文件前要求确认。输入 y (是)确认,输入 n (否)停止。
示例:
假设您有一个名为 example.txt 的文件,并运行了该命令:
rm -i example.txt
系统将提示您类似这样的信息:
remove regular file 'example.txt'?
然后你需要键入 y (表示是)或 n (表示否)来确认或拒绝删除。如果键入 y 并按 Enter 键,文件 example.txt 将被删除。如果键入 n ,文件将保持不动。
remove regular file 'example.txt'? y
之后,如果您用 ” y ” 确认, example.txt 将被删除。
如何使用 rmdir
该命令既可以删除目录,也可以删除目录中的文件。除了不能用来删除文件外,它与 rm -r 命令没有明显区别。
rmdir 命令的一般语法:
$ rmdir [OPTION...] [DIRECTORY...]
1. 删除一个目录
rmdir [directory]
使用此命令可删除一个目录,但只有当该目录为空时才会被删除。
示例:
假设你有一个名为 myfolder 的目录,但它是空的。运行命令:
rmdir myfolder
目录 myfolder 将被删除,如果操作成功,则不会有任何输出信息。
但是,如果 myfolder 不为空或不存在,则会收到一条错误信息。例如,如果 myfolder 包含文件或子目录,你可能会看到:
rmdir: failed to remove 'myfolder': Directory not empty
或者如果 myfolder 不存在:
rmdir: failed to remove 'myfolder': No such file or directory
2. 删除多个目录
rmdir [folder1] [folder2] [folder3]
该命令允许您同时删除多个目录,但所有目录都必须为空。
示例:
Linux 中的 rmdir folder1 folder2 folder3 命令试图删除名为 folder1, folder2, 和 folder3 的目录。只有当这三个目录都为空时,这条命令才会成功;否则,系统将显示一条错误信息。
下面是一个示例,说明如何执行该命令:
如果 folder1, folder2, 和 folder3 都是空目录,命令将删除它们,不会有任何输出信息。
如果其中任何一个目录不是空目录或不存在,则会针对每个有问题的目录显示错误信息。
folder2 不为空时的输出示例:
rmdir: failed to remove 'folder2': Directory not empty
在这种情况下,folder1 和 folder3  如果是空的,仍会被移除,但 folder2 将保持不变。
3. 删除父目录
rmdir -p [directory-path]
选项 -p 会删除指定目录及其父目录。
示例:
下面举例说明 rmdir -p folder_a/folder_b 命令是如何工作的:
假设你有一个这样的目录结构:
folder_a └── folder_b
如果 folder_a 和 folder_b 都是空的,运行 rmdir -p folder_a/folder_b 命令将首先删除 folder_b,然后,由于 folder_a 变为空的,它也将删除 folder_a。
如果 folder_a 或 folder_b中有任何文件或子目录,该命令将不会删除它们,你会收到类似的错误信息:
rmdir: failed to remove 'folder_a/folder_b': Directory not empty
在成功的情况下,不会有任何输出,两个目录都会被删除。
更多 Linux 命令
下面罗列了最常见的一些 Linux 命令,您可以根据自己的需要查阅对应命令的详细解析:
| 目录操作 | rmdir·cd·pwd·exa·ls | 
| 文件操作 | cat·cp·dd·less·touch·ln·rename·more·head | 
| 文件系统操作 | chown·mkfs·locate | 
| 网络 | ping·curl·wget·iptables·mtr | 
| 搜索和文本处理 | find·grep·sed·whatis·ripgrep·fd·tldr | 
| 系统信息和管理 | env·history·top·who·htop·glances·lsof | 
| 用户和会话管理 | screen·su·sudo·open | 
此外,我们还整理 Linux 命令行大全,以帮助大家全面深入地学习 Linux。
















暂无评论内容