昨天学习了创建文件和目录的命令mkdir ,今天学习一下linux中删除文件和目录的命令: rm命令。rm是常用的命令,该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除。对于链接文件,只是删除了链接,原有文件均保持不变。

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

1.命令格式

rm [选项] 文件…

2.命令功能

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

3.命令参数

-f, --force    忽略不存在的文件,从不给出提示。

-i, --interactive 进行交互式删除

-r, -R, --recursive   指示rm将参数中列出的全部目录和子目录均递归地删除。

-v, --verbose    详细显示进行的步骤

--help     显示此帮助信息并退出

--version  输出版本信息并退出

4.命令实例

实例一:删除文件file,系统会先询问是否删除。

命令

rm 文件名

输出

  1. [root@localhost test1]# ll
  2. 总计 4
  3. -rw-r--r-- 1 root root 56 10-26 14:31 log.log
  4. root@localhost test1]# rm log.log
  5. rm:是否删除 一般文件 log.log”? y
  6. root@localhost test1]# ll
  7. 总计 0[root@localhost test1]#

说明

输入rm log.log命令后,系统会询问是否删除,输入y后就会删除文件,不想删除则数据n。

实例二:强行删除file,系统不再提示。

命令

rm -f log1.log

输出

  1. [root@localhost test1]# ll
  2. 总计 4
  3. -rw-r--r-- 1 root root 23 10-26 14:40 log1.log
  4. [root@localhost test1]# rm -f log1.log
  5. [root@localhost test1]# ll
  6. 总计 0[root@localhost test1]#

实例三:删除任何.log文件;删除前逐一询问确认

命令:

rm -i *.log

输出

  1. [root@localhost test1]# ll
  2. 总计 8
  3. -rw-r--r-- 1 root root 11 10-26 14:45 log1.log
  4. -rw-r--r-- 1 root root 24 10-26 14:45 log2.log
  5. [root@localhost test1]# rm -i *.log
  6. rm:是否删除 一般文件 log1.log”? y
  7. rm:是否删除 一般文件 log2.log”? y
  8. [root@localhost test1]# ll
  9. 总计 0[root@localhost test1]#

实例四:将 test1子目录及子目录中所有档案删除

命令

rm -r test1

输出

  1. [root@localhost test]# ll
  2. 总计 24drwxr-xr-x 7 root root 4096 10-25 18:07 scf
  3. drwxr-xr-x 2 root root 4096 10-26 14:51 test1
  4. drwxr-xr-x 3 root root 4096 10-25 17:44 test2
  5. drwxrwxrwx 2 root root 4096 10-25 17:46 test3
  6. drwxr-xr-x 2 root root 4096 10-25 17:56 test4
  7. drwxr-xr-x 3 root root 4096 10-25 17:56 test5
  8. [root@localhost test]# rm -r test1
  9. rm:是否进入目录 test1”? y
  10. rm:是否删除 一般文件 test1/log3.log”? y
  11. rm:是否删除 目录 test1”? y
  12. [root@localhost test]# ll
  13. 总计 20drwxr-xr-x 7 root root 4096 10-25 18:07 scf
  14. drwxr-xr-x 3 root root 4096 10-25 17:44 test2
  15. drwxrwxrwx 2 root root 4096 10-25 17:46 test3
  16. drwxr-xr-x 2 root root 4096 10-25 17:56 test4
  17. drwxr-xr-x 3 root root 4096 10-25 17:56 test5
  18. [root@localhost test]#

实例五:rm -rf test2命令会将 test2 子目录及子目录中所有档案删除,并且不用一一确认

命令

rm -rf  test2

输出

  1. [root@localhost test]# rm -rf test2
  2. [root@localhost test]# ll
  3. 总计 16drwxr-xr-x 7 root root 4096 10-25 18:07 scf
  4. drwxrwxrwx 2 root root 4096 10-25 17:46 test3
  5. drwxr-xr-x 2 root root 4096 10-25 17:56 test4
  6. drwxr-xr-x 3 root root 4096 10-25 17:56 test5
  7. [root@localhost test]#

实例六:删除以 -f 开头的文件

命令

rm -- -f

输出

  1. [root@localhost test]# touch -- -f
  2. [root@localhost test]# ls -- -f
  3. -f[root@localhost test]# rm -- -f
  4. rm:是否删除 一般空文件 “-f”? y
  5. [root@localhost test]# ls -- -f
  6. ls: -f: 没有那个文件或目录
  7. [root@localhost test]#

档名最好不要使用 "-" 号开头, 因为 "-" 后面接的是选项,因此,单纯的使用『 rm -f 』系统的命令就会误判。所以,只能用避过首位字节是 "-" 的方法啦! 就是加上本目录『 ./ 』即可!
如果 man rm 的话,其实还有一种方法,那就是『 rm -- -f 』(另外一种方法而已)。

也可以使用下面的操作步骤:

  1. [root@localhost test]# touch ./-f
  2. [root@localhost test]# ls ./-f
  3. ./-f[root@localhost test]# rm ./-f
  4. rm:是否删除 一般空文件 “./-f”? y
  5. [root@localhost test]#

实例七:自定义回收站功能

命令

myrm(){ D=/tmp/$(date +%Y%m%d%H%M%S); mkdir -p $D; mv "$@" $D && echo "moved to $D ok"; }

输出

  1. [root@localhost test]# myrm(){ D=/tmp/$(date +%Y%m%d%H%M%S); mkdir -p $D; mv "$@" $D && echo "moved to $D ok"; }
  2. [root@localhost test]# alias rm='myrm'
  3. [root@localhost test]# touch 1.log 2.log 3.log
  4. [root@localhost test]# ll
  5. 总计 16
  6. -rw-r--r-- 1 root root 0 10-26 15:08 1.log
  7. -rw-r--r-- 1 root root 0 10-26 15:08 2.log
  8. -rw-r--r-- 1 root root 0 10-26 15:08 3.log
  9. drwxr-xr-x 7 root root 4096 10-25 18:07 scf
  10. drwxrwxrwx 2 root root 4096 10-25 17:46 test3
  11. drwxr-xr-x 2 root root 4096 10-25 17:56 test4
  12. drwxr-xr-x 3 root root 4096 10-25 17:56 test5
  13. [root@localhost test]# rm [123].log
  14. moved to /tmp/20121026150901 ok
  15. [root@localhost test]# ll
  16. 总计 16drwxr-xr-x 7 root root 4096 10-25 18:07 scf
  17. drwxrwxrwx 2 root root 4096 10-25 17:46 test3
  18. drwxr-xr-x 2 root root 4096 10-25 17:56 test4
  19. drwxr-xr-x 3 root root 4096 10-25 17:56 test5
  20. [root@localhost test]# ls /tmp/20121026150901/
  21. 1.log 2.log 3.log
  22. [root@localhost test]#

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中的文件夹内,移入成功后,输出移动成功。
}

alias rm='myrm'
#命令别名定义方式,此定义成功后,无论输入rm或myrm系统都会做出相同操作。

说明:

上面的操作过程模拟了回收站的效果,即删除文件的时候只是把文件放到一个临时目录中,这样在需要的时候还可以恢复过来。

每天一个linux命令(5):rm 命令的更多相关文章

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

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

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

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

  3. linux常用命令:rm 命令

    昨天学习了创建文件和目录的命令mkdir ,今天学习一下linux中删除文件和目录的命令: rm命令.rm是常用的命令,该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所 ...

  4. linux命令:rm 命令

    昨天学习了创建文件和目录的命令mkdir ,今天学习一下linux中删除文件和目录的命令: rm命令.rm是常用的命令,该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所 ...

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

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

  6. 全网最详细的Linux命令系列-rm命令

    今天学习一下linux中删除文件和目录的命令: rm命令.rm是常用的命令,该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除.对于链接文件,只是删除 ...

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

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

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

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

  9. Linux中查看jdk安装目录、Linux卸载jdk、rpm命令、rm命令参数

    一.查看jdk安装目录 [root@node001 ~]# whereis java java: /usr/bin/java /usr/local/java #java执行路径 [root@node0 ...

  10. linux常用命令(4)rm命令

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

随机推荐

  1. 开源PLM软件Aras详解四 ItemType的概念

    首先,我们需要了解什么是ItemType,俗称对象类 官方一点就是ItemType是一个用来定义业务对象类的业务对象类 通过ItemType定义的每个业务对象类可以产生各自的实例对象 通过ItemTy ...

  2. 关于Beam Search

    Wiki定义:In computer science, beam search is a heuristic search algorithm that explores a graph by exp ...

  3. JVM调优-Java垃圾回收之分代回收

    为什么要进行分代回收? JVM使用分代回收测试,是因为:不同的对象,生命周期是不一样的.因此不同生命周期的对象采用不同的收集方式. 可以提高垃圾回收的效率. Java程序运行过程中,会产生大量的对象, ...

  4. 内存,堆,栈,heap,stack,data

    1. 基本类型占一块内存. 引用类型占两块. 2. 类是静态概念. 函数中定义的基本类型变量和对象的引用类型变量都在函数的栈内存. 局部变量存在栈内存. new创建的对象和数组,存在堆内存. java ...

  5. gvim 配置Pydiction

    配置windows下gvim 的python关键字补全插件Pydiction 1.下载Pydiction 2.解压缩包,里面有after文件夹.complete-dict.pydiction.py 3 ...

  6. Java 基本数据类型长度

    System.out.println(Integer.MAX_VALUE-(-Integer.MAX_VALUE)); //内存溢出System.out.println(Integer.MAX_VAL ...

  7. Tomcat部署方式

    tomcat中三种部署项目的方法 第一种方法:在tomcat中的conf目录中,在server.xml中的,<host/>节点中添加: <Context path="/he ...

  8. 理解em,rem以及rem的失效问题

    在平常做网站写代码的时候一般都是使用px,在之前的学习时就略微的学习了一些关于em.rem的知识,但是由于一直没有用到过,所以几乎全部忘记了.今天在研究一些知识的时候用到了em,所以特意将学到的知识总 ...

  9. 怎么把U盘启动改为硬盘启动(适用于U盘安装系统时)

    两种方法: 一:安装时: 在自定义创建分区后,如图: 选择系统的启动程序安装的位置,在change  device 里设置第一启动装置,和第二启动装置! 二:安装后: 开机未进入系统按F2,进入BIO ...

  10. Reduce inversion count 求最小逆序数

    本问题出自:微软2014实习生及秋令营技术类职位在线测试 (Microsoft Online Test for Core Technical Positions) Description Find a ...