Linux rm 命令详解
![]()
前言
在类 UNIX 操作系统中,我们时长都是用命令来操作操作系统,特别常见于远程服务器,也只能通过命令来远程操作。
平时,查看文件用 ls 命令,打开文件夹、创建文件夹 cd、mkdir,都是很基本的操作。在过去,我们也学习了 cp 文件拷贝命令。
那么,我先现在来了解下 rm 命令的一个使用。
删除文件
一般,删除文件的命令,就是 rm 加上对应要删除的文件名即可,同时也要注意一点,就是文件名一定是完整的,包含扩展名、区分大小写的。
假如,我们删除一个叫 index.html 的文件。
[Shell] 纯文本查看 复制代码 rm index.html
如果,有多个具体的文件需要我们来删除,比如 index.html、logo.png
[Shell] 纯文本查看 复制代码 rm index.html logo.png
这样,基本的文件删除也就能够搞定。
但是,有时候我们删除的文件很多,特别是,有时候我们希望删除一系列文件,可能就会采用通配符的思想去操作。
比如我们要删除所有 .html 扩展名的文件。
[Shell] 纯文本查看 复制代码 rm *.html
一般来说,我们会先 ls *.png 去列出,避免误删,然后再去删除。但是这样操作就很麻烦,每次都要去确认,如果通配符复杂一点,或者查看的时候和删除的时候,输入不一致,就可能删错文件。
那么还有个参数就能帮我们搞定这个操作。
[Shell] 纯文本查看 复制代码 rm -i *.html
这样,就会提示每一个文件的具体文件名,并且需要按下 y 并回车,才会删除对应文件,确保安全。
还有个参数 -I 大写的 I,一般就是用于编写SHELL时候,做简单合并一次性提示用的,平时操作来说就很少用了。
有时候,有些特别的文件,会有写保护,那么想要删除就会提示。只要你能够确认你想删除的文件是想删除的,不希望删除命令再做额外提示,可以这样操作。
[Shell] 纯文本查看 复制代码 rm -f *.html
这样就没有任何提示,直接删除了这些文件。
这样删除多个文件,且没有提示有个弊端,就是你不清楚删除的过程,如果你想要看到这个过程可以这样操作。
[Shell] 纯文本查看 复制代码 rm -vf *.html
那么,就会一行一行列出这些文件,给操作者一个删除过程的感受。
删除文件夹
文件删除,基本上都是针对文件的操作,那么如果文件放入在文件夹中,我们又想去直接删除对应文件夹,按照删除文件的操作肯定是不行的。
删除文件夹,需要使用 -d 参数,且这个参数只针对空文件夹,那么可以这么操作,比如有个空文件夹叫做 js。
[Shell] 纯文本查看 复制代码 rm -d js
这么做,文件夹就被删除掉了。但如果文件夹里面并不是空的,我们直接去删除文件夹就会失败,那么,可以考虑的办法就是,先进入文件夹去删除所有文件,再删除外面对应的文件夹。这种情形只针对简单的文件目录结构。如果文件夹中不仅是文件,还包含很多子文件夹,那么做这么一步操作可能就没有办法。那删除当前文件夹且递归删除所有子文件夹、子文件就会使用2个参数来操作 -rf。
[Shell] 纯文本查看 复制代码 rm -rf js
使用这个命令,直接删掉 js 文件夹,包含它的子文件夹和文件,而且无法恢复。所以这是个非常危险的命令,在提供删除路径的时候,一定要输入正确,避免删错文件夹,这样就很难再恢复了。
总结
rm 命令非常好用,也功能强大,多加利用,一定会方便我们服务器的操作,提高运维的效率。大家还是多加尝试,当然,别把服务器搞崩了。
|
|