当前位置:首页>Linux>普通人也能看懂的 Linux 命令 · 04

普通人也能看懂的 Linux 命令 · 04

  • 2026-09-05 11:56:00
普通人也能看懂的 Linux 命令 · 04

普通人也能看懂的 Linux 命令 · 04

删除文件为什么要格外小心?rm、rmdir 和通配符入门

在 Windows 电脑上,我们删除文件时,大部分情况下会先进入回收站。发现删错了,打开回收站,还有机会找回来。

但在 Linux 命令行中,情况通常完全不同。

当你输入一条删除命令,系统往往会直接执行。没有弹窗提醒,也不会自动帮你放进回收站。

一条命令,可能删除一个文件,也可能删除整个目录里的所有内容。

所以,学习 Linux 删除命令,重点不是记住怎么删,而是知道:自己到底要删除什么,以及怎样避免删错。

今天,我们从最基础的 rm 和 rmdir 开始,再认识能够批量匹配文件的通配符。   

01rm:删除一个普通文件

rm 是 Linux 中常见的删除命令,名称来自英文单词 remove。   

它的基本写法很简单:

rm 文件名

假设当前目录里有一个不再需要的文件:

notes.txt

可以这样删除:

rm notes.txt

如果执行成功,终端通常不会显示“删除成功”之类的提示,而是直接回到等待输入命令的状态。

此时可以使用 ls 查看当前目录:   

ls

如果列表中已经没有 notes.txt,说明它已经被删除。   

Linux 命令行中,很多命令执行成功后并不会主动输出结果。没有提示,不一定代表没有生效。

02为什么 rm 要格外小心?

因为对于普通的命令行使用场景来说,rm 通常不会把文件送进桌面系统的回收站。   

它也没有一个通用的“撤销删除”命令。

虽然某些情况下可以依靠备份、文件系统快照,或者专业恢复工具尝试找回,但这些方法并不保证成功,往往也需要额外条件。

对初学者来说,最好建立一个简单的意识:

命令行删除文件时,应当默认它无法轻松恢复。

另外,Linux 文件名通常区分大小写。例如:

report.txt Report.txt REPORT.txt

在通常区分大小写的 Linux 文件系统中,这可能是三个不同的文件。

删除之前,最好确认自己输入的文件名与实际文件完全一致。

03rm -i:删除之前先问一句

     如果你担心误删,可以在 rm 后面加上 -i 参数:   

rm -i notes.txt

执行之后,系统通常会出现类似这样的提示:

rm: remove regular file 'notes.txt'?

这句话的意思是:是否删除这个普通文件?

       输入 y:确认删除。     

       输入 n:取消删除。     

对刚开始接触 Linux 的人来说,使用 rm -i 是一个不错的习惯。   

它不能保证万无一失,但至少会在真正删除之前,再给你一次检查机会。

04rmdir:专门删除空目录

如果你要删除的是一个目录,可以先认识另一个命令:

rmdir 目录名

     例如,删除一个名为 empty_folder 的空目录:   

rmdir empty_folder

这个命令有一个很重要的特点:

rmdir 只能删除空目录。

如果目录中还有文件或者子目录,系统通常会提示:

rmdir: failed to remove 'empty_folder': Directory not empty

意思是:删除失败,因为目录不是空的。

这个限制看起来有些麻烦,但对于初学者来说,它反而是一层保护:至少不会因为手滑,把目录里的资料一起删除。

05rm -r:删除目录和里面的内容

如果一个目录里面还有文件,而你已经确认整个目录都不再需要,可以使用:

rm -r 目录名

例如:

rm -r old_files

这里的 -r 表示递归删除。   

简单来说,就是把指定目录,以及里面的文件、子目录和更深层的内容一起删除。

目录里的东西越多,rm -r 的影响范围就越大。执行前,最好先用 ls 查看目录内容,再决定是否删除。

如果希望删除时增加确认提示,可以组合使用:

rm -ri old_files

其中:

-r:递归处理目录及其内容。     

-i:在删除过程中进行交互确认。     

当目录中文件较多时,确认提示也会很多。但对于还不熟悉操作的新手来说,慢一点通常比删错更好。

06通配符:一个符号匹配多个文件

假设一个目录里有这些文件:

notes.txt todo.txt report.txt photo.jpg music.mp3

如果想找到所有以 .txt 结尾的文件,不需要把每个名字都写出来。   

可以使用星号:

*.txt

     这里的 * 就是一种常见的通配符,通常表示匹配任意数量的字符。   

因此:

ls *.txt

通常会显示:

notes.txt report.txt todo.txt

常见的写法还有:

*.txt:匹配以 .txt 结尾的名称。     

report*:匹配以 report 开头的名称。     

*2026*:匹配名称中包含 2026 的文件或目录。     

默认情况下,普通的 * 通常不会匹配以点开头的隐藏文件。这一点也需要提前知道。   

07通配符遇上 rm,风险会放大

通配符非常方便,但和删除命令放在一起时,也意味着一次操作可能影响多个文件。

例如:

rm *.txt

这条命令会删除当前目录中匹配 *.txt 的普通文件。   

如果当前目录里恰好有重要的文本资料,它们也可能一起被删除。

更安全的做法:先查看,再删除。

先确认通配符会匹配哪些文件,再决定是否继续。

第一步,先查看匹配到的文件:

ls -d -- *.txt

第二步,确认这些文件确实都不再需要之后,再使用带确认提示的删除命令:

rm -i -- *.txt

这里的 -- 用来明确告诉命令:后面的内容按文件名处理,避免某些以短横线开头的文件名被误认为命令参数。   

对初学者而言,最需要记住的还是一句话:

看不清通配符会匹配什么,就不要直接把它交给 rm。

08空格打错,结果可能完全不同

删除命令中的一个空格,有时会彻底改变它的含义。

比如,你原本想删除当前目录中以 .txt 结尾的文件:   

rm *.txt

如果不小心在星号后面加了一个空格:

rm * .txt

命令的含义就变了。

其中的 * 通常会展开为当前目录下的非隐藏名称,后面的 .txt 则会被当作另一个单独的文件名。   

结果可能导致当前目录中的多个普通文件被删除,而不仅仅是文本文件。

使用通配符时,输入完成后先检查一遍空格,再按回车。

09rm -rf 为什么总被反复提醒?

在很多 Linux 教程或技术讨论中,你可能见过这样一组参数:

rm -rf

其中:

-r:递归删除目录及其内容。     

-f:不进行交互确认,并忽略不存在的文件。     

需要注意的是,-f 并不代表可以突破系统权限。没有权限删除的内容,仍然不能随意删除。   

真正的风险在于:它会减少确认机会,而递归删除又会扩大操作范围。

对初学者的建议

不要复制执行来源不明的删除命令,不要在没有确认目录和路径的情况下使用 rm -rf,更不要用管理员权限运行自己不理解的命令。

遇到需要清理目录的情况,先查看位置和内容:

pwd ls -la

确认自己确实位于预期目录,再决定下一步操作。

10动手练习:在临时目录里操作

如果想练习删除命令,建议先准备一个专门的练习目录,不要直接拿自己的工作文件测试。

第一步:创建练习目录并进入。

mkdir delete_practice cd delete_practice

第二步:创建几个测试文件。

touch notes.txt todo.txt report.txt photo.jpg

第三步:查看当前目录内容。

ls

第四步:查看哪些文件会被 *.txt 匹配。

ls -d -- *.txt

第五步:带确认提示地删除文本文件。

rm -i -- *.txt

根据提示输入 y 或 n。   

第六步:创建并删除一个空目录。

mkdir empty_folder rmdir empty_folder

第七步:检查练习目录里还剩什么。

ls

如果你删除了全部文本文件,通常只会剩下:

photo.jpg
11今天的命令速查

rm 文件名:删除普通文件。     

rm -i 文件名:删除前进行确认。     

rmdir 目录名:删除空目录。     

rm -r 目录名:递归删除目录及其内容。     

rm -ri 目录名:递归删除,并进行交互确认。     

*.txt:匹配以 .txt 结尾的名称。     

ls -d -- *.txt:查看通配符匹配到的名称。     

pwd:查看当前所在目录。     

ls -la:查看当前目录中的详细内容,包括隐藏文件。     

写在最后

创建文件时输错名字,通常可以重新创建;复制错位置,也往往可以重新调整。

但删除操作不同。一旦执行,原本的数据可能很难恢复。

因此,学习 Linux 删除命令,最重要的不是记住多少参数,而是养成三个习惯:

第一,先确认自己在哪个目录。

第二,先看清楚要删除哪些文件。

第三,不理解的删除命令,不要直接执行。

命令行本身并不可怕,可怕的是还没看清楚,就已经按下了回车。

下一篇预告

文件里面写了什么?cat、less、head 和 tail 入门

最新文章

随机文章