linux学习笔记5--命令rmdir和rm

昨天学习了创建目录的命令mkdir ,接下来学习一下linux中删除文件和目录的命令: rm命令。

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

rm命令可以删除一个目录中的一个或多个文件或目录,也可以将某个目录及其下属的所有文件及其子目录均删除掉。对于链接文件,只是删除整个链接文件,而原有文件保持不变。 注意:使用rm命令要格外小心。因为一旦删除了一个文件,就无法再恢复它。所以,在删除文件之前,最好再看一下文件的内容,确定是否真要删除。rm命令可以用-i选项,这个选项在使用文件扩展名字符删除多个文件时特别有用。使用这个选项,系统会要求你逐一确定是否要删除。这时,必须输入y并按Enter键,才能删除文件。如果仅按Enter键或其他字符,文件不会被删除。

rmdir命令用来删除空目录。当目录不再被使用时,或者磁盘空间已到达使用限定值,就需要删除失去使用价值的目录。利用rmdir命令可以从一个目录中删除一个或多个空的子目录。该命令从一个目录中删除一个或多个子目录,其中dirname表示目录名。如果dirname中没有指定路径,则删除当前目录下由dirname指定的目录;如dirname中包含路径,则删除指定位置的目录。删除目录时,必须具有对其父目录的写权限。

1.命令格式:

rm [选项] 文件…

2.命令功能:

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

3.命令参数:

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

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

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

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

-d:直接把欲删除的目录的硬连接数据删除成0,删除该目录;

--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]#

说明:

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

语法

rmdir(选项)(参数)

选项

-p或--parents:删除指定目录后,若该目录的上层目录已变成空目录,则将其一并删除;

--ignore-fail-on-non-empty:此选项使rmdir命令忽略由于删除非空目录时导致的错误信息;

-v或-verboes:显示命令的详细执行过程;

--help:显示命令的帮助信息;

--version:显示命令的版本信息。

参数

目录列表:要删除的空目录列表。当删除多个空目录时,目录名之间使用空格隔开。

实例 删除子目录os_1和其父目录bin

cd /usr/meng/test

rmdir -p bin/os_1

实例一:rmdir 不能删除非空目录

命令:

rmdir doc

输出:

[[email protected] scf]# tree

.

|-- bin

|-- doc

|   |-- info

|   `-- product

|-- lib

|-- logs

|   |-- info

|   `-- product

`-- service

`-- deploy

|-- info

`-- product

12 directories, 0 files

[[email protected] scf]# rmdir doc

rmdir: doc: 目录非空

[[email protected] scf]# rmdir doc/info

[[email protected] scf]# rmdir doc/product

[[email protected] scf]# tree

.

|-- bin

|-- doc

|-- lib

|-- logs

|   |-- info

|   `-- product

`-- service

`-- deploy

|-- info

`-- product

10 directories, 0 files

说明:

rmdir 目录名 命令不能直接删除非空目录

实例2:rmdir -p 当子目录被删除后使它也成为空目录的话,则顺便一并删除

命令:

rmdir -p logs

输出:

[[email protected] scf]# tree

.

|-- bin

|-- doc

|-- lib

|-- logs

|   `-- product

`-- service

`-- deploy

|-- info

`-- product

10 directories, 0 files

[[email protected] scf]# rmdir -p logs

rmdir: logs: 目录非空

[[email protected] scf]# tree

.

|-- bin

|-- doc

|-- lib

|-- logs

|   `-- product

`-- service

`-- deploy

|-- info

`-- product

9 directories, 0 files

[[email protected] scf]# rmdir -p logs/product

[[email protected] scf]# tree

.

|-- bin

|-- doc

|-- lib

`-- service

`-- deploy

|-- info

`-- product

7 directories, 0 files

我经常使用的rm和rmdir命令:

rm -fr fileName/dirName : 强制删除文件或者文件夹,不必询问,而且不论文件夹是否非空都会删除。

rm -r dirName : 递归删除一个文件夹里的内容。

rm既能删除文件,又能删除文件夹,比rmdir使用更频繁。更多的是结合ls和grep等过滤来删除某些符合条件的文件。

时间: 2024-10-11 01:48:24

linux学习笔记5--命令rmdir和rm的相关文章

linux学习笔记-type命令

语法: type [-tpa] name 参数: type:    不加任何参数时,type会显示出name是外部命令还是内部bash内置命令 -t:      当加入-t参数时,type会将name以下面这些字眼显示出它的意义 file:表示为外部命令 alias:表示该命令为命令别名所设置的名称 builtin:表示该命令为bash内置的命令功能 -p:     如果后面接的name为外部命令时,才显示完整文件名 -a:     会有path变量定义的路径中,将所有含有name的命令都列出来

Linux学习笔记——常用命令(一)

Linux分区的四个基本步骤: 1)分区:硬盘划分为逻辑分区 2)格式化逻辑分区(写入文件系统) 3)分区设备文件名:给每个分区定义设备文件名 4)挂载点:给每个分区分配挂载点 注意事项: 1)必须分区: /   /boot  /swap 2)一块硬盘最多4个分区,最多1个扩展分区,扩展分区又可以包含多个逻辑分区 设置密码原则: 1)复杂性 2)易记性 3)时效性 目录usr(unlix software resource) 防火墙:用来过滤,制定一系列的规则(IP.MAC.端口等) Linux

Linux学习笔记:命令(一)

linux常用命令 1.关机 shutdown -h now 立刻关机 poweroff shutdown -r now 立刻重启 reboot logout 注销 2.进入图形界面 startx 3.vi编辑器 [vi] [path]/[file]: [i]进入编辑模式: [esc]进入命令模式: [:wq]保存并退出:[:q!]退出不保存. 4.显示列表 ls 列表 ls -l 详细列表 长列表格式 ls -a 显示隐藏文件 ll 详细列表 ls -l /bin/*sh 列表bin目录中以s

Linux学习笔记9--touch命令使用

NAME       touch - change file timestamps --改变文件的时间记录 SYNOPSIS       touch [OPTION]... FILE... DESCRIPTION       Update  the  access and modification times of each FILE to the current       time. --使用touch指令可更改文件或目录的日期时间,包括存取时间和更改时间. Mandatory argume

Linux学习笔记——获取命令帮助方法及命令分类

命令类型: 内嵌命令:shell 内嵌 外部命令:在文件系统中存在某个路径与命令相同的可执行文件 环境变量:命名的内存空间 变量赋值 #printenv   显示环境变量 #hash     显示缓存命中命令 PATH:  使用:隔开的一组路径 0(1) 查找数据速度标准 获取命令帮助方法: 1.#help  COMMAND          获取内部命令帮助 ,例 help cd    查看cd命令帮助信息 2.# COMMAND --help        获取外部命令帮助,例  ls  -

linux学习笔记——基础命令、快捷键与认识虚拟机

虚拟机[[email protected] Desktop]$ rht-vmctl start desktop     ###开启Starting desktop.[[email protected] Desktop]$ rht-vmctl view desktop    ##显示[[email protected] Desktop]$ rht-vmctl stop desktop    ##正常关闭虚拟机[[email protected] Desktop]$ rht-vmctl powero

Linux学习笔记——find命令

哎呀,随着年龄的增大记性越来越差了之前学过的一些命令也就依稀记得写命令名字了(大写的监介,你懂得),趁着年前还有点时间就先把find命令简单整理一下吧,其实都知道葫芦里卖的什么药(手动哈哈)! 有人可能会说了记得名字其他不就好办了吗,直接命令行真男人(man)一下就可以拯救世界了,话虽如此,谁让本人只对女人感兴趣咧~,不扯了开始正题. 先看下find用法格式: find   [path...] [expression] 常用选项 -name:指明要查询的文件名: -type :指明所要查询的文件

Linux学习笔记--which命令(搜索命令的命令)

which,哪一个的意思,作用是从PATH环境变量指定的路径中,搜索命令所在位置及命令别名. which命令特点: 1) "which" 命令只能查找系统命令,不能搜索普通文件. 2) "which" 命令是从PATH环境变量指定的路径中,搜索某个系统命令的位置, 并且返回第一个搜索结果. PATH环境变量: PATH:决定了shell将到哪些目录中寻找命令或程序,PATH的值是一系列目录,用":"隔开,当您运行一个命令时,Linux在这些目录下

Linux学习笔记--locate命令(文件搜索命令)

locate,定位的意思,作用是让使用者可以快速的搜寻系统中是否有指定的文件. locate 命令特点: 1) "locate"的速度比"find"快,因为它并不是真的查找文件,而是查数据库. 2) 新建的文件,我们立即用"locate"命令去查找,一般是找不到的, 因为数据库的更新不是实时的,数据库的更新时间由系统维护. 3) "locate"命令所搜索的后台数据库在"/var/lib/mlocate"这