要在 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。
评论留言