rm是一个危险的命令,使用的时候要特别当心,尤其对于新手,否则整个系统就会毁在这个命令(比如在/(根目录)下执行rm * -rf)。所以,我们在执行rm之前最好先确认一下在哪个目录,到底要删除什么东西,操作时保持高度清醒的头脑。

1、命令格式:

  rm [选项] 文件

2、命令功能:

  删除一个目录中的一个或多个文件或目录,如果没有使用- r选项,则rm不会删除目录。如果使用 rm 来删除文件,通常仍可以将该文件恢复原状。

3、命令参数:

  -f, --force    忽略不存在的文件,从不给出提示。
-i, --interactive 进行交互式删除
-r, -R, --recursive 指示rm将参数中列出的全部目录和子目录均递归地删除。
-v, --verbose 详细显示进行的步骤
--help 显示此帮助信息并退出
--version 输出版本信息并退出

4、常用实例:

(1)、删除文件file,有时系统会先询问是否删除。

命令:

  rm 文件名

输出:

felix@felix-computer:~/test$ ls
aaa.txt
felix@felix-computer:~/test$ rm aaa.txt
felix@felix-computer:~/test$ ls
felix@felix-computer:~/test$

说明:

有时候,系统会询问是否删除,输入y后就会删除文件,不想删除则数据n。

(2)、强行删除file,系统不提示。

命令:

  rm -f 文件名

输出:

felix@felix-computer:~/test$ ls
aaa.txt
felix@felix-computer:~/test$ rm -f aaa.txt
felix@felix-computer:~/test$ ls
felix@felix-computer:~/test$

(3)、删除任何.txt文件;删除前逐一询问确认

命令:

  rm -i *.txt

输出:

felix@felix-computer:~/test$ ls
a.txt b.txt
felix@felix-computer:~/test$ rm -i *.txt
rm:是否删除普通空文件 'a.txt'? y
rm:是否删除普通空文件 'b.txt'? y
felix@felix-computer:~/test$ ls
felix@felix-computer:~/test$

(4)、将test1目录以及子目录中的所有文件删除

命令:

  rm -r test1    如果要显示提示: rm -ri test1

输出:

felix@felix-computer:~/test$ ls
test1
felix@felix-computer:~/test$ find ./ -type f
./test1/t.txt
felix@felix-computer:~/test$ rm -ri test1/
rm:是否进入目录'test1/'? y
rm:是否进入目录'test1/test2'? y
rm:是否删除目录 'test1/test2/test3'? y
rm:是否删除目录 'test1/test2'? y
rm:是否删除普通空文件 'test1/t.txt'? y
rm:是否删除目录 'test1/'? y
felix@felix-computer:~/test$

(5)、删除test2子目录中的所有文件,并且不一一确认。

命令:

  rm -rf test2

输出:

felix@felix-computer:~/test$ mkdir -p test2/test3/test4
felix@felix-computer:~/test$ touch test2/aaa.txt test2/test3/bbb.txt test2/test3/test4/ccc.txt
felix@felix-computer:~/test$ find ./ -type f
./test2/test3/test4/ccc.txt
./test2/test3/bbb.txt
./test2/aaa.txt
felix@felix-computer:~/test$ rm -rf test2/
felix@felix-computer:~/test$

(6)、自定义回收站功能

命令:

先执行:
myrm(){ D=/tmp/回收站/$(date +%Y_%m_%d_%H_%M_%S); mkdir -p $D; mv "$@" $D && echo "moved to $D ok"; }
再执行:
alias rm='myrm'

输出:

felix@felix-computer:~/test$ myrm(){ D=/tmp/回收站/$(date +%Y_%m_%d_%H_%M_%S); mkdir -p $D; mv "$@" $D && echo "moved to $D ok"; }
felix@felix-computer:~/test$ alias rm='myrm'
felix@felix-computer:~/test$ mkdir -p test1/test2/test3 && touch {1,2,3,4}.txt
felix@felix-computer:~/test$ ls
1.txt 2.txt 3.txt 4.txt test1
felix@felix-computer:~/test$ rm *
moved to /tmp/回收站/2018_11_04_12_37_25 ok
felix@felix-computer:~/test$ ls /tmp/回收站/2018_11_04_12_37_25
1.txt 2.txt 3.txt test1
felix@felix-computer:~/test$ ls
felix@felix-computer:~/test$

说明:

a、
myrm()
{
D=/tmp/回收站/$(date +%Y_%m_%d_%H_%M_%S);
#在/tmp文件夹中创建名为“当前日期”的文件;
#其中“date+%Y_%m_%d_%H_%M_%S”是规定了日期的输出格式;
mkdir -p $D;
#以变量D中的路径创建文件夹。
mv "$@" $D && echo "moved to $D ok";
#将所要删除的文件移入变量D中的文件夹内,移入成功后,输出移动成功。
}
b、
alias rm='myrm'
#命令别名定义方式,此定义成功后,无论输入rm或myrm系统都会做出相同操作。
c、
移入的是linux中的/tmp/目录下,该目录会自动定时清理,如果要恢复删除的文件,需要在清理之前恢复。比如Ubuntu系统是每次重启自动清理。
d、
如果想恢复rm为原来的rm操作,执行:alias rm=/bin/rm
e、
自定义回收站的本质是mv操作,所以加的参数都是mv的参数

注意:如果需要每次使用rm命令都执行上述回收站功能,需要修改.bashrc 文件

在.bashrc 文件下面添加以下两行

myrm(){ D=/tmp/回收站/$(date +%Y_%m_%d_%H_%M_%S); mkdir -p $D; mv "$@" $D && echo "moved to $D ok"; }
alias rm='myrm'

添加完后执行:source .bashrc

linux系列(五):rm命令的更多相关文章

  1. linux下修改rm命令防止误删除

    前言:相信很多朋友都遇到过在linux下用rm命令误删除文件的时候,此刻的心中仿佛有无数的羊驼在奔腾.那么怎么防止这种情况发生呢?当然是有方法的,我们可以写一个shell脚本,改变一下rm命令的作用. ...

  2. 将linux下的rm命令改造成移动文件至回收站【转】

    转自:http://blog.csdn.net/a3470194/article/details/16863803 [-] 将linux下的rm命令改造成移动文件至回收站 将AIX下的rm命令改造成移 ...

  3. 将linux下的rm命令改造成移动文件至回收站

    将linux下的rm命令改造成移动文件至回收站 rm是Linux下文件删除的命令,它是Linux下非常强大却又非常危险的一条命令,特别是rm -rf有时候强大到让你欲哭无泪,当你想清除当前目录下的所有 ...

  4. [转帖]Linux系列之SAR命令使用详解

    Linux系列之SAR命令使用详解 sar是System Activity Reporter(系统活动情况报告)的缩写.这个工具所需要的负载很小,也是目前linux中最为全面的性能分析工具之一.此款工 ...

  5. 将linux下的rm命令改造成mv到指定的目录下

    rm是Linux下文件删除的命令,它是Linux下非常强大却又非常危险的一条命令,特别是rm -rf有时候强大到让你欲哭无泪,当你想清除当前目录下的所有文件和目录时,很简单#rm -rf ./*这没什 ...

  6. linux中使用rm命令将文件移到回收站的方法

    今天在终端下,看到我的用户目录下有个-的文件夹(maven生成),相要删除收回点空间,习惯性的用命令 rm -rf ~ ,一回车,猛然想起的时候已经来不及了,世界一下子清静了,想死的心都有了! 没错, ...

  7. 【Linux下禁用rm命令之建立回收站】

    第一步 创建回收站目录 # 根据自己的习惯,找个位置创建一个用作回收文件的目录 # 我们这里将在root目录下面创建一个名为".trash"的隐藏文件 [root@fedora ~ ...

  8. 【Linux系列】find命令使用

    Linux下find命令在目录结构中搜素文件,病执行制定的操作. 一.命令格式 find pathname -options[-print -exec -ok] 二.命令功能 用于在文件树种查找文件, ...

  9. 【开发者portal在线开发插件系列五】命令的响应,即命令结果的上报(mid的使用)

    基础篇 [开发者portal在线开发插件系列一]profile和基本上下行消息 [开发者portal在线开发插件系列二]多条上下行消息(messageId的使用) 基础场景见上面两个帖子,这里单独介绍 ...

  10. Linux系列之查找命令

    前言 Linux 有四个常用的查找命令:locate.whereis.which 和 find.本文介绍它们的区别和简单用法. locate命令 这个命令将检查你的整个文件系统,并找到该关键词的每一次 ...

随机推荐

  1. CH08 QSPI启动并从EMMC运行APP

    8.1 概述 在前一节课,我们必须手动挂载TF卡到mnt,然后输入./a.out程序才能启动.而在嵌入式系统里面,我们很多时候需要实现开机启动程序.很多时候我们会把程序固化到FLASH,然后从EMMC ...

  2. SQL高级教程

    一.top子句 top子句用于规定要返回的记录的数目 并非所有数据库系统都支持top子句 # sqlserver SELECT TOP number|percent column_name(s) FR ...

  3. Luogu5290 [十二省联考2019] 春节十二响 【贪心】【堆】

    题目分析: 对于一个根,假设我们对每个子树分别求出了一种答案,那么怎么合并答案是最小的呢? 首先考虑这些答案里面最大的那个数字,它肯定要融合其它组里面的最大数字.以此类推 所以最好的合并方式是,每个子 ...

  4. 1.VBA Excel宏

    Excel VBA宏 在这一章中,让我们了解如何编写一个简单的宏.让我们一步一步来. 第1步:首先,让我们能够在Excel20XX'开发'菜单.做同样的,点击 File >> Option ...

  5. 以前我对你不够好,我也很难受——CSS篇

    1)文字下划线.删除线.定划线 Text-decoration:underline /*下划线*/ Text-decoration:overline     /*顶划线*/ Text-decorati ...

  6. 使用postman mock server

    需要写一个小的Java程序,用来调用云平台的接口 由于云平台的接口程序还没有写好,只能用模拟的方式先行开发代码, 用了post来模拟接口程序. 需要模拟的接口如下: ■请求地址 /openapi/ip ...

  7. android studio 开发环境配置

    android studio 开发环境配置 参考: 第一次使用Android Studio时你应该知道的一切配置 https://www.cnblogs.com/qianguyihao/p/43909 ...

  8. Hadoop HA 搭建

    Hadoop HA 什么是 HA HA是High Available缩写,是双机集群系统简称,指高可用性集群,是保证业务连续性的有效解决方案,一般有两个或两个以上的节点,且分为活动节点及备用节点.通常 ...

  9. vue进入页面时不在顶部,检测滚动返回顶部按钮

    这里是本小白使用时遇到的问题及个人使用的方法可能并不完美. 1.监测浏览器滚动条滚动事件及滚动距离 dmounted() { window.addEventListener("scroll& ...

  10. Fortify漏洞之Cross-Site Scripting(XSS 跨站脚本攻击)

    书接上文,继续对Fortify漏洞进行总结,本篇主要针对XSS跨站脚步攻击漏洞进行总结,如下: 1.Cross-Site Scripting(XSS 跨站脚本攻击) 1.1.产生原因: 1. 数据通过 ...