***每天一个linux命令(5):rm 命令

昨天学习了创建文件和目录的命令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 文件名

输出:

[[email protected] test1]# ll

总计 4

-rw-r--r-- 1 root root 56 10-26 14:31 log.log

[email protected] test1]# rm log.log

rm:是否删除 一般文件 “log.log”? y

[email protected] test1]# ll

总计 0[[email protected] test1]#

说明:

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

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

命令:

rm -f log1.log

输出:

[[email protected] test1]# ll

总计 4

-rw-r--r-- 1 root root 23 10-26 14:40 log1.log

[[email protected] test1]# rm -f log1.log

[[email protected] test1]# ll

总计 0[[email protected] test1]#

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

命令:

rm -i *.log

输出:

[[email protected] test1]# ll

总计 8

-rw-r--r-- 1 root root 11 10-26 14:45 log1.log

-rw-r--r-- 1 root root 24 10-26 14:45 log2.log

[[email protected] test1]# rm -i *.log

rm:是否删除 一般文件 “log1.log”? y

rm:是否删除 一般文件 “log2.log”? y

[[email protected] test1]# ll

总计 0[[email protected] test1]#

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

命令:

rm -r test1

输出:

[[email protected] test]# ll

总计 24drwxr-xr-x 7 root root 4096 10-25 18:07 scf

drwxr-xr-x 2 root root 4096 10-26 14:51 test1

drwxr-xr-x 3 root root 4096 10-25 17:44 test2

drwxrwxrwx 2 root root 4096 10-25 17:46 test3

drwxr-xr-x 2 root root 4096 10-25 17:56 test4

drwxr-xr-x 3 root root 4096 10-25 17:56 test5

[[email protected] test]# rm -r test1

rm:是否进入目录 “test1”? y

rm:是否删除 一般文件 “test1/log3.log”? y

rm:是否删除 目录 “test1”? y

[[email protected] test]# ll

总计 20drwxr-xr-x 7 root root 4096 10-25 18:07 scf

drwxr-xr-x 3 root root 4096 10-25 17:44 test2

drwxrwxrwx 2 root root 4096 10-25 17:46 test3

drwxr-xr-x 2 root root 4096 10-25 17:56 test4

drwxr-xr-x 3 root root 4096 10-25 17:56 test5

[[email protected] test]#

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

命令:

rm -rf  test2

输出:

[[email protected] test]# rm -rf test2

[[email protected] test]# ll

总计 16drwxr-xr-x 7 root root 4096 10-25 18:07 scf

drwxrwxrwx 2 root root 4096 10-25 17:46 test3

drwxr-xr-x 2 root root 4096 10-25 17:56 test4

drwxr-xr-x 3 root root 4096 10-25 17:56 test5

[[email protected] test]#

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

命令:

rm -- -f

输出:

[[email protected] test]# touch -- -f

[[email protected] test]# ls -- -f

-f[[email protected] test]# rm -- -f

rm:是否删除 一般空文件 “-f”? y

[[email protected] test]# ls -- -f

ls: -f: 没有那个文件或目录

[[email protected] test]#

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

[[email protected] test]# touch ./-f

[[email protected] test]# ls ./-f

./-f[[email protected] test]# rm ./-f

rm:是否删除 一般空文件 “./-f”? y

[[email protected] test]#

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

命令:

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

输出:

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

[[email protected] test]# alias rm=‘myrm‘

[[email protected] test]# touch 1.log 2.log 3.log

[[email protected] test]# ll

总计 16

-rw-r--r-- 1 root root    0 10-26 15:08 1.log

-rw-r--r-- 1 root root    0 10-26 15:08 2.log

-rw-r--r-- 1 root root    0 10-26 15:08 3.log

drwxr-xr-x 7 root root 4096 10-25 18:07 scf

drwxrwxrwx 2 root root 4096 10-25 17:46 test3

drwxr-xr-x 2 root root 4096 10-25 17:56 test4

drwxr-xr-x 3 root root 4096 10-25 17:56 test5

[[email protected] test]# rm [123].log

moved to /tmp/20121026150901 ok

[[email protected] test]# ll

总计 16drwxr-xr-x 7 root root 4096 10-25 18:07 scf

drwxrwxrwx 2 root root 4096 10-25 17:46 test3

drwxr-xr-x 2 root root 4096 10-25 17:56 test4

drwxr-xr-x 3 root root 4096 10-25 17:56 test5

[[email protected] test]# ls /tmp/20121026150901/

1.log  2.log  3.log

[[email protected] test]#

说明:

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

参考资料:

http://codingstandards.iteye.com/blog/983531

时间: 2024-10-16 13:55:00

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

Linux系统的rm命令太危险,一不小心就会删除系统文件。写一个shell脚本来替换系统的rm命令,

Linux系统的rm命令太危险,一不小心就会删除系统文件.写一个shell脚本来替换系统的rm命令,要求当删除一个文件或者目录时都要做一个备份,然后再删除. 假设有一个大的分区/data/,每次删除文件或者目录前,都要在/data/下面创建一个隐藏目录,以日期/时间命名,比如/data/.201802021054,然后把所有删除的文件同步到该目录下面,可以使用rsync -R把文件路径一同同步 答案: #!/bin/bash d=`date +%Y%m%d%H%M` read -p "Are y

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

前言:相信很多朋友都遇到过在linux下用rm命令误删除文件的时候,此刻的心中仿佛有无数的羊驼在奔腾.那么怎么防止这种情况发生呢?当然是有方法的,我们可以写一个shell脚本,改变一下rm命令的作用. 第一步: 先在home目录下创建一个叫username名字的目录(当然名字可以自定义),具体命令为:sudo mkdir username(自定义的名字) 这时候记得要用命令:sudo chmod 777 username(自定义的名字)来改变一下你的目录权限,因为在home目录下刚创建的目录是没

Linux中快捷键的使用,who命令,rm命令,ps命令,cd命令,kill命令,find命令,grep命令,tar命令(gz、tar、bz2),相关命令

1.进入Ubuntu之后打开终端窗口的快捷键是: ctrl + alt+t:通过这个命令可以打开终端.截图是: 2.关闭一个终端窗口的方式是: Alt +F4,在Ubuntu下还可以是exit 3.对于terminal中的符号,其中的$标识,普通用户时显示的是$,超级管理员对应的符号是:# 截图如下: 4.whoami:查看我是谁的命令,截图如下: 通过whoami或者who命令查看当前用户 5.清屏的命令是: clear,快捷键是:ctrl + l 6.查看当前所在位置的命令是:pwd 7.c

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

转自:http://blog.csdn.net/a3470194/article/details/16863803 [-] 将linux下的rm命令改造成移动文件至回收站 将AIX下的rm命令改造成移动文件至回收站 将linux下的rm命令改造成移动文件至回收站 rm是Linux下文件删除的命令,它是Linux下非常强大却又非常危险的一条命令,特别是rm -rf有时候强大到让你欲哭无泪,当你想清除当前目录下的所有文件和目录时,很简单 #rm -rf ./* 这没什么,但是,但是如果不小心打成这样

linux常用命令:rm 命令

昨天学习了创建文件和目录的命令mkdir ,今天学习一下linux中删除文件和目录的命令: rm命令.rm是常用的命令,该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除.对于链接文件,只是删除了链接,原有文件均保持不变. rm是一个危险的命令,使用的时候要特别当心,尤其对于新手,否则整个系统就会毁在这个命令(比如在/(根目录)下执行rm * -rf).所以,我们在执行rm之前最好先确认一下在哪个目录,到底要删除什么东西,操作时保持高度清醒的头脑

Linux命令篇之mkdir命令,rmdir命令和rm命令

在 Linux 下用 mkdir 命令来创建目录和子目录 了解了用 ls 命令在目录中列出条目后,现在我们要学习在 Linux 系统下创建目录.在 Linux 下,我们可以使用 mkdir 命令.Mkdir 是"make directory" 的缩写词. mkdir 是什么呢 Mkdir 是一个用来在 Linux 系统下创建目录的命令.此命令属于内建命令. 运行 mkdir 命令 你可以在你的控制台直接键入 mkdir 来使用它. $ mkdir 默认情况下,不带任何参数运行 mkdi

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

今天在终端下,看到我的用户目录下有个-的文件夹(maven生成),相要删除收回点空间,习惯性的用命令 rm -rf ~ ,一回车,猛然想起的时候已经来不及了,世界一下子清静了,想死的心都有了! 没错,-指定的是当前用户的目录,我的用户名是liyd,相当于是执行了rm -rf /home/liyd,所有的文件都删除了.试了linux下的各种文件恢复方法,都不理想,ext4格式,找回来的比率太小了,还要在一大堆乱文件中查找需要的,唉!所幸没什么特别重要的文件,代码都git和svn提交了,损失还能接受

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

rm是Linux下文件删除的命令,它是Linux下非常强大却又非常危险的一条命令,特别是rm -rf有时候强大到让你欲哭无泪,当你想清除当前目录下的所有文件和目录时,很简单 #rm -rf ./*这没什么,但是,但是如果不小心打成这样#rm -rf /* 请节哀吧!~~ rm删除文件同时删除inode信息,这使得使用rm删除的文件十分难恢复.总之rm太危险了,特别是带有-rf参数时一定要慎之又慎,但老虎也有打盹的时候啊,所以为什么不给rm一剂后悔药呢! mkdir -p ~/.trash #创建

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

一.查看jdk安装目录 [[email protected] ~]# whereis java java: /usr/bin/java /usr/local/java #java执行路径 [[email protected] ~]# which java /usr/bin/java #查看JDK安装路径 [[email protected] ~]# echo $JAVA_HOME /usr/local/java/jdk1.7.0_80 [[email protected] ~]# echo $P

CentOS Linux 系统命令之rm命令

rm命令,删除命令,可以是文件和目录,其功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除.对于链接文件,只是删除了链接,原有文件均保持不变. 命令格式 rm [选项] 文件或者目录 参数选项: -f, --force 强制删除,不管是否有文件,不提示 -v,--verbose 详细显示删除的步骤 -i,--interactive 删除前提示,交互式 -r,-R,--recursive 删除目录,参数中的全部目录和子目录的递归删除. --help  显示